Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用grep和cut分隔符命令(在bashshell脚本UNIX中)和;倒车;信息技术_Bash_Unix_Scripting_Grep_Cut_Regex_Perl_Ruby_Awk_Python_Js_Shell_Php - Fatal编程技术网

使用grep和cut分隔符命令(在bashshell脚本UNIX中)和;倒车;信息技术

使用grep和cut分隔符命令(在bashshell脚本UNIX中)和;倒车;信息技术,bash,unix,scripting,grep,cut,regex,perl,ruby,awk,python,js,shell,php,Bash,Unix,Scripting,Grep,Cut,Regex,Perl,Ruby,Awk,Python,Js,Shell,Php,因此,我有一个文件,其中包含以下文本: puddle2_1557936:/home/rogers.williams/folderz/puddle2 我想使用grep命令 grep puddle2_1557936 与cut命令(或其他命令,如有必要)混合以仅显示此零件: /home/rogers.williams/folderz/puddle2 到目前为止,我知道如果你这么做 grep puddle2_1557936 | cut -d ":" -f1 然后它就会显示出来 puddle2_

因此,我有一个文件,其中包含以下文本:

puddle2_1557936:/home/rogers.williams/folderz/puddle2
我想使用grep命令

grep puddle2_1557936
与cut命令(或其他命令,如有必要)混合以仅显示此零件:

/home/rogers.williams/folderz/puddle2
到目前为止,我知道如果你这么做

 grep puddle2_1557936 | cut -d ":" -f1
然后它就会显示出来

puddle2_1557936
那么,是否存在某种“反转”分隔符剪切命令


注意:解决方案必须从
grep puddle2_15579636

开始,您无需更改分隔符即可使用
cut
显示字符串的右侧部分

cut
命令的
-f
开关是由分隔符分隔的第n个元素:
,因此您只需键入:

 grep puddle2_1557936 | cut -d ":" -f2

如果您想玩得开心,另一种解决方案(稍作调整):

使用:

或仅使用:


最简单的解决方法是将
-f2
切割一起使用。顺便说一句,为什么它必须从grep puddle2_15579636开始呢?如果不这样做,会不会发生不好的事情?非常感谢!不知道修复有那么容易…哈哈。此外,它必须从greppuddle2_15579636开始,因为我正在编写一个相当长的脚本,在脚本中,唯一可用的信息是!除非你看到整个项目,否则很难解释!哪里是
python
ruby
+1:p谢谢!只在bash上需要它,但额外的信息不会伤害hahaWith
awk
我们真的需要这么大的
-F
?正确,你的答案说的是不同的。:)顺便说一句,ruby与perl非常相似:
ruby-F:-ane'/puddle2\u 1557936/并放置$F[1]'
grep -oP 'puddle2_1557936:\K.*' <<< 'puddle2_1557936:/home/rogers.williams/folderz/puddle2'                                                                        
/home/rogers.williams/folderz/puddle2
grep -oP '(?<=puddle2_1557936:).*' <<< 'puddle2_1557936:/home/rogers.williams/folderz/puddle2'                                                                    
/home/rogers.williams/folderz/puddle2
perl -lne '/puddle2_1557936:(.*)/ and print $1' <<< 'puddle2_1557936:/home/rogers.williams/folderz/puddle2'                                                      
/home/rogers.williams/folderz/puddle2
ruby -F: -ane '/puddle2_1557936/ and puts $F[1]' <<< 'puddle2_1557936:/home/rogers.williams/folderz/puddle2'
/home/rogers.williams/folderz/puddle2
awk -F'puddle2_1557936:' '{print $2}'  <<< 'puddle2_1557936:/home/rogers.williams/folderz/puddle2'
/home/rogers.williams/folderz/puddle2
python -c 'import sys; print(sys.argv[1].split("puddle2_1557936:")[1])' 'puddle2_1557936:/home/rogers.williams/folderz/puddle2'
/home/rogers.williams/folderz/puddle2
IFS=: read _ a <<< "puddle2_1557936:/home/rogers.williams/folderz/puddle2"
echo "$a"
/home/rogers.williams/folderz/puddle2
js<<EOF
var x = 'puddle2_1557936:/home/rogers.williams/folderz/puddle2'
print(x.substr(x.indexOf(":")+1))
EOF
/home/rogers.williams/folderz/puddle2
php -r 'preg_match("/puddle2_1557936:(.*)/", $argv[1], $m); echo "$m[1]\n";' 'puddle2_1557936:/home/rogers.williams/folderz/puddle2' 
/home/rogers.williams/folderz/puddle2