Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.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
Regex 在unix中,从从特定单词开始到最后一列的行中选择列?_Regex_Perl_Sed_Awk_Cut - Fatal编程技术网

Regex 在unix中,从从特定单词开始到最后一列的行中选择列?

Regex 在unix中,从从特定单词开始到最后一列的行中选择列?,regex,perl,sed,awk,cut,Regex,Perl,Sed,Awk,Cut,输入文件 1.蓝色是颜色 2.他的衬衫是蓝色的,很好 3.《深蓝看》是一部电影 输出: 1.蓝色是颜色 2.蓝色很好 3.蓝色看是一部电影 我需要在unix中使用awk或cut从特定单词到最后一列的输出。这是一个非常常见的用例 cat test.txt | awk '{ if (x=index($0,"blue")) { print substr($0,x,length($0)); } }' 我建议您查看以下代码: 上述行将输出: kent$ awk 'BEGIN{FS="\\<bl

输入文件

1.蓝色是颜色 2.他的衬衫是蓝色的,很好 3.《深蓝看》是一部电影 输出:

1.蓝色是颜色 2.蓝色很好 3.蓝色看是一部电影
我需要在unix中使用awk或cut从特定单词到最后一列的输出。

这是一个非常常见的用例

cat test.txt | awk '{ if (x=index($0,"blue")) { print substr($0,x,length($0)); } }'
我建议您查看以下代码:

上述行将输出:

kent$  awk 'BEGIN{FS="\\<blue\\>"; OFS="blue"}{$1=""}7' file                                                                                                                   
blue is color
blue and it is good
blue see is a movie
注意\\将完全匹配单词blue,而不是bluesky或darkblue,我希望这是您想要的。

在Perl中:

perl -nle'/(blue.*)/&&print"$1\n"'

我需要从…开始的输出你尝试了什么?这是一个非常常见的无用的猫叫声。它不会有太大的区别,除非你在一个负载非常大的系统上。对这个例子来说,它不会有太大的区别。然而,当学习/做事情时,如果有明显更好的选择,我会这样做。如果你认为一个过程并不比多个无用的过程好,你可以保留你的观点。我同意你的观点。然而,我总是在考虑真实的案例。我的意思是在一个真实的例子中,它将是一个大型命令管道中的一个链,所以从我的观点来看,“awk{CODE}文件”是退化的case。感谢这个提示,添加了一个单词边界。
kent$  awk 'BEGIN{FS="\\<blue\\>"; OFS="blue"}{$1=""}7' file                                                                                                                   
blue is color
blue and it is good
blue see is a movie
perl -nle'/(blue.*)/&&print"$1\n"'