使用awk从具有空格的文本字符串的文件中打印打印

时间:2013-09-25 23:43:42

标签: regex linux awk grep

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

我有一个格式为:

的文件
6468511 node_modules aotehu
6468520 jsuno.js hello there

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

我有类似下面的东西,但它只抓住了最后一个问候。我如何抓住所有文本'你好'并将其保存到var $ 3:

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

感谢。

3 个答案:

答案 0 :(得分:2)

试试这个

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

$1取消$2$0。左边裁剪$0并打印

答案 1 :(得分:1)

您可以使用grepcut

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

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

答案 2 :(得分:0)

这将删除$ 1和$ 2并打印休息。

awk '/6468520/ {$1=$2="";sub(/^ +/,x);print}' file
hello there