1

这可能很简单,但是会出错。

我有一个格式如下的文件:

6468511 node_modules aotehu
6468520 jsuno.js hello there

是三列。最后一个可以是任何长度的任何文本(它是该项目的注释)。

我有类似以下的内容,但它只从最后一个中获取你好。我将如何获取所有文本“你好”并将其保存到 var $3:

awk '/6468520/ {print $3}' comments

谢谢。

4

3 回答 3

2

试试这个

awk '/6468520/ {var1=$1; var2=$2; $1=$2=""; sub(/^ +/, "");
     print var1, var2, $0}' file

消除$1$2$0. 左修剪$0和打印

于 2013-09-25T23:50:53.087 回答
1

你可以使用grepcut

grep -e ^6468520 your.file | cut -d' ' -f3-

grep将打印开头的行,6468520cut 将用空格分割行并从第三列打印到行尾。

于 2013-09-25T23:50:18.797 回答
0

这将删除 $1 和 $2 并打印剩余部分。

awk '/6468520/ {$1=$2="";sub(/^ +/,x);print}' file
hello there
于 2013-09-26T04:48:52.763 回答