仅按范围打印特定的完整列

仅按范围打印特定的完整列

我有一个包含这样内容的文件。

Column1     Column2                           Column3             Column4
USER1        25 Years                          xyz zyz               123 abc
USER2        15 Years 2 months blah            abc sdsz sd        123 abc

等等 ...

现在我想要的是打印 COLUMN2 的所有内容,正如您所看到的,它具有动态内容,文本可以是一个单词或多个带空格的单词。所以我需要一种方法来打印第2列内容。

答案1

使用awk

awk 'NR==1{b=index($0,$2); e=index($0,$3)} {print substr($0,b,e-b)}' file

如果age字段长度是动态的,您首先必须找出它的开始位置和结束位置。变量b定义字段开始的字符,e变量定义结束的字符。substr()然后将绳子切成所需的长度。

相关内容