【发布时间】:2018-03-13 04:52:55
【问题描述】:
我有一个包含太多 shell 脚本代码的文件。在此,我有一个字符串“/usr/bin/rsync”,其输出如下
/usr/bin/rsync -arz --update --chmod=Du=rwx,Dg=rwx,Do=rwx,Fu=rwx,Fg=rw,Fo=rw -e "ssh -p 7887" root@192.168.1.201:/mnt/enjayvol1/remote/* /mnt/enjayvol5/esync/naspro/remote/ --bwlimit=0 --stats -h -l >> ${LOGFILE}
从这个字符串中,我想在第一次和第二次出现时找出当前存在的 enjayvol。
我需要输出,因为在上面的示例中,第一次出现的是 enjayvol1,第二次出现的是 enjayvol5。
我需要使用两个命令
预期输出是 对于第一个命令 enjayvol1
第二个命令输出是 enjayvol5
我用过
firstcommand=`grep -w "/usr/bin/rsync" esync.sh | grep -i enjayvol | head -1`
它将输出显示为
/usr/bin/rsync -arz --update --chmod=Du=rwx,Dg=rwx,Do=rwx,Fu=rwx,Fg=rw,Fo=rw /mnt/enjayvol1/lokesh/* -e "ssh -p 7887" root@192.168.1.201:/mnt/enjayvol5/esync/naspro/lokesh/ --bwlimit=0 --stats -h -l >> ${LOGFILE}
secondcommand=`grep -w "/usr/bin/rsync" esync.sh | grep -i enjayvol | tail -1`
它显示输出为
/usr/bin/rsync -arz --update --chmod=Du=rwx,Dg=rwx,Do=rwx,Fu=rwx,Fg=rw,Fo=rw /mnt/enjayvol1/lokesh/* -e "ssh -p 7887" root@192.168.1.201:/mnt/enjayvol5/esync/naspro/lokesh/ --bwlimit=0 --stats -h -l >> ${LOGFILE}
【问题讨论】:
-
不清楚你想要什么。你能发布一个更详细的例子吗?
grep -m 1 '/usr/bin/rsync' "$filename.txt" | grep -om2 'enjayvol[[:digit:]]*'之类的东西似乎与您所问的类似,但您的问题确实不清楚。 -
我有 grep 'usr/bin/rsync' 现在在这个字符串中我想 grep enjayvol 在这个字符串中的第一次和第二次出现。在上面的示例输出中,第一次出现为 enjayvol1,第二次出现为 enjayvol5。我想要两个命令来找到这个
-
@DavidC.Rankin 请忽略这一行我已从我的问题中删除了这一行。
-
@LOKESH,请保持简单。添加示例输入并在帖子中而不是在 cmets 中添加带有条件的预期输出,以便我们可以尝试为您提供帮助。
-
我已经编辑了我的问题