这可能很简单,但是会出错。
我有一个格式如下的文件:
6468511 node_modules aotehu
6468520 jsuno.js hello there
是三列。最后一个可以是任何长度的任何文本(它是该项目的注释)。
我有类似以下的内容,但它只从最后一个中获取你好。我将如何获取所有文本“你好”并将其保存到 var $3:
awk '/6468520/ {print $3}' comments
谢谢。
试试这个
awk '/6468520/ {var1=$1; var2=$2; $1=$2=""; sub(/^ +/, "");
print var1, var2, $0}' file
消除$1
和$2
从$0
. 左修剪$0
和打印
你可以使用grep
和 cut
:
grep -e ^6468520 your.file | cut -d' ' -f3-
grep
将打印开头的行,6468520
cut 将用空格分割行并从第三列打印到行尾。
这将删除 $1 和 $2 并打印剩余部分。
awk '/6468520/ {$1=$2="";sub(/^ +/,x);print}' file
hello there