範囲別に特定の全列のみを印刷

範囲別に特定の全列のみを印刷

このような内容のファイルがあります。

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

など...

今私が望むのは、COLUMN2のすべてのコンテンツを印刷することです。ご覧のように、動的コンテンツがあり、テキストは1つの単語または空白のある複数の単語にすることができます。したがって、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()その後、ロープを目的の長さに切ります。

関連情報