-3

输入文件

1. blue is color
2. His shirt color is blue and it is good
3. deep blue see is a movie

输出:

1. blue is color
2. blue and it is good
3. blue see is a movie

我需要使用awk或cut从unix中的特定单词到最后一列的输出。

4

4 回答 4

4
awk 'BEGIN{FS="\\<blue\\>"; OFS="blue"}{$1=""}7' file

上面的行将输出:

kent$  awk 'BEGIN{FS="\\<blue\\>"; OFS="blue"}{$1=""}7' file                                                                                                                   
blue is color
blue and it is good
blue see is a movie

请注意,这"\\<blue\\>"将完全匹配 w​​ord blue,而不是bluesky or darkblue我希望这是您想要的。

于 2013-07-09T07:28:17.023 回答
3

的代码:

$ sed -r 's/^([0-9]+. ).* (蓝色)\b/\1\2/' 文件
1. 蓝色是颜色
2.蓝色,很好
3.蓝看是电影
于 2013-07-09T07:22:41.250 回答
1

这是一个很常见的用例,

cat test.txt | awk '{ if (x=index($0,"blue")) { print substr($0,x,length($0)); } }'

我建议你看看Awk - A Tutorial and Introduction

于 2013-07-09T07:11:28.340 回答
0

在 Perl 中:

perl -nle'/(blue.*)/&&print"$1\n"'
于 2013-07-09T12:44:00.537 回答