免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6606 | 回复: 6
打印 上一主题 下一主题

[文件目录] 请问怎么实现linux下根据文件结构的一个跳转程序? [复制链接]

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
1 [报告]
发表于 2018-05-25 01:40 |显示全部楼层
本帖最后由 1cpuer 于 2018-05-25 02:25 编辑

回复 5# 龙牙地主天


echo "/qs/project/x1/x2/x3/userA/project/cds/.cshrc" | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$user'/{print ++n"\t"$6FS$7}'
NO    Name
1    x3/userA
$7~/'$user'/{print ++n"\t"$6FS$7}  #第 7 列匹配 $user ...不大理解  
在第 1 个 find 行未加 && source ./*/*/.cshrc

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
2 [报告]
发表于 2018-05-25 09:36 |显示全部楼层
回复 8# minzyyl

find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$user'/{print ++n"\t"$6FS$7}' && find ./ -iname '.cshrc' -exec source {} \;
估计可行了

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
3 [报告]
发表于 2018-05-25 13:56 |显示全部楼层
回复 11# minzyyl

.cshrc 可运行吗
写不了

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
4 [报告]
发表于 2018-05-25 18:56 |显示全部楼层
回复 13# minzyyl

在 /usr/bin/sw 脚本中可运行 .cshrc 不
原本是这个意思
可行的话,不和原贴意了么 ?

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
5 [报告]
发表于 2018-05-26 08:17 |显示全部楼层
回复 15# minzyyl

  • cat /usr/bin/sw
  • #!/bin/bash
  • user="$(whoami)"
  • if [[ $1 == "" ]];then
  •         find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$user'/{print ++n"\t"$6FS$7}'
  • elif [[ $1 == "-u" && $2 != "" ]];then
  •         find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$2'/{print ++n"\t"$6FS$7}'
  • else
  •         echo "command error!"
  •         exit 1
  • fi


if -a elif -a else -a fi

if and fi 是开关闭合 elif 是又if else 是那么  #--

不加 if 加 elif | else


论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
6 [报告]
发表于 2018-05-28 08:53 |显示全部楼层
本帖最后由 1cpuer 于 2018-05-28 09:02 编辑

# [ /home/soio/1bs/awks ] {2018-05-28 08:48:51}
: 1527468531:0;➜  find /home/soio/*/*/*/ -maxdepth 4 -type d | grep userA        
/home/soio/1bs/awks/dir-1/module/proj/auserA_3
/home/soio/1bs/awks/dir-1/module/userA_1
/home/soio/1bs/awks/dir-1/module/userA_1/project
/home/soio/1bs/awks/dir-1/module/userA_1/project/cds
/home/soio/1bs/awks/dir-1/module/userA_1/proj
/home/soio/1bs/awks/dir-1/module/userA
/home/soio/1bs/awks/dir-1/module/userA/project
/home/soio/1bs/awks/dir-1/module/userA/project/cds
/home/soio/1bs/awks/dir-1/module/userA/proj

# [ /home/soio/1bs/awks ] {2018-05-28 08:52:01}
: 1527468721:0;➜  echo "echo \"abcd-123 \"" > /home/soio/1bs/awks/dir-1/module/userA/project/cds/.cshell@2


# [ /home/soio/1bs/awks ] {2018-05-28 08:52:53}
: 1527468773:0;➜  cat /home/soio/1bs/awks/dir-1/module/userA/project/cds/.cshell@2      
echo "abcd-123 "


# [ /home/soio/1bs/awks ] {2018-05-28 08:58:22}
: 1527469102:0;➜  find /home/soio/*/*/*/ -maxdepth 2 -type d | grep userA
/home/soio/1bs/awks/dir-1/module/userA_1
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 08:58:30}
: 1527469110:0;➜  find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 09:00:16}
: 1527469216:0;➜  cd ($find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>')
zsh: bad pattern: ( /home/soio/*/*/*/ -maxdepth 2 -type d | grep \<userA\>)


# [ /home/soio/1bs/awks ] {2018-05-28 09:00:36}
: 1527469236:0;➜  cd $(find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>')


# [ /home/soio/1bs/awks/dir-1/module/userA ] {2018-05-28 09:00:45}
: 1527469245:0;➜  cd `find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'`


# [ /home/soio/1bs/awks/dir-1/module/userA ] {2018-05-28 09:01:00}
: 1527469260:0;➜  cd ../../                                                         


# [ /home/soio/1bs/awks/dir-1 ] {2018-05-28 09:01:12}
: 1527469272:0;➜  cd `find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'`


# [ /home/soio/1bs/awks/dir-1/module/userA ] {2018-05-28 09:01:13}
: 1527469273:0;➜  

论坛徽章:
6
程序设计版块每日发帖之星
日期:2016-05-11 06:20:00操作系统版块每日发帖之星
日期:2016-05-12 06:20:00每日论坛发贴之星
日期:2016-05-12 06:20:00操作系统版块每日发帖之星
日期:2016-05-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-31 06:20:00每日论坛发贴之星
日期:2016-05-31 06:20:00
7 [报告]
发表于 2018-05-28 10:48 |显示全部楼层
本帖最后由 1cpuer 于 2018-05-28 10:54 编辑

回复 18# 1cpuer

# [ /home/soio/1bs/awks ] {2018-05-28 10:32:02}
: 1527474722:0;➜  find /home/soio/*/*/*/ -maxdepth 2 -type d | grep '\<userA\>'
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:00}
: 1527474780:0;➜  find /home/soio/1bs/awks/ -name userA
/home/soio/1bs/awks/dir-1/module/userA


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:18}
: 1527474798:0;➜  find /home/soio/1bs/awks/ -name userA -exec cd {} \;
find: `cd': 没有那个文件或目录


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:38}
: 1527474818:0;➜  find /home/soio/1bs/awks/ -name userA | xargs cd   
xargs: cd: 没有那个文件或目录


# [ /home/soio/1bs/awks ] {2018-05-28 10:33:56}
: 1527474836:0;➜  find /home/soio/1bs/awks/ -name userA | xargs cd {} \;
xargs: cd: 没有那个文件或目录


# [ /home/soio/1bs/awks ] {2018-05-28 10:47:20}
: 1527475640:0;➜  cat f10.sh
#!/bin/bash

user="$(whoami)"
x1="module/userA"
if [[ $1 == "$x1" ]];then

#        echo "f10-01"
        x2=$(find /home/soio/1bs/awks/ -name userA) && echo $x2       
#        find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$user'/{print ++n"\t"$6FS$7}'

elif [[ $1 == "-u" && $2 != "" ]];then

        echo "f10-02"
#        find /qs/project/*/*/*/ -maxdepth 1 -type d | awk -F'/' 'BEGIN{print "NO\tName"}$7~/'$2'/{print ++n"\t"$6FS$7}'

else

        echo "command error!"
        exit 1

fi


# [ /home/soio/1bs/awks ] {2018-05-28 10:53:39}
: 1527476019:0;➜  ./f10.sh module/userA
/home/soio/1bs/awks/dir-1/module/userA


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP