对于看起来像这样的文件:
Paul white male 34
Jane black female 22
Sam white male 44
我想要一个awk行来处理与第二列相同的第一列之后的所有内容,以便我可以在上面运行它并生成以下内容
white male 34
black female 22
white male 44
目前,awk'{print $ 2}只输出第一个单词,而不是该行的其余部分。
谢谢!
答案 0 :(得分:1)
其中一个应该对你有用,取决于第一个空格字符是什么,其余空格是:
awk '{sub(/[^ ]+[ ]+/,"")}1' file
awk -F'\t' '{print $2}' file
答案 1 :(得分:0)
我会提到另一种(棘手的)方式:
在您的awk行中,您可以设置$2
而不是打印$1=""
,然后打印整行。
awk '!($1="")' file
看测试:
kent$ echo "Paul white male 34
Jane black female 22
Sam white male 44"|awk '!($1="")'
white male 34
black female 22
white male 44
这个单线很短,给你输出。但每条线上都有一个前导空白。它也很容易被删除:
awk '!($1="")&&gsub(/^ /,"")'