
1 つのディレクトリに 31 個のファイルがあります。ファイル形式は次のとおりです。
TimeStamop user-id
1471417712595 1936f35c-XXXX-XXXX-XXXX-49898523b8ea
1471417717238 e3153e8d-XXXX-XXXX-XXXX-7710089c77bb
1471417718730 4e470320-XXXX-XXXX-XXXX-29bc448f09a1
1471417719211 e8b6a6c0-XXXX-XXXX-XXXX-dd68d836fb31
1471417723775 cbc009c1-XXXX-XXXX-XXXX-88cda2b1b812
1471417723775 cbc009c1-XXXX-XXXX-XXXX-88cda2b1b812
1471417725790 c332eba7-XXXX-XXXX-XXXX-509c42a621d1
1471417725522 4712acf1-XXXX-XXXX-XXXX-11a24bcbe7c8
1471417601920 502bc0dd-XXXX-XXXX-XXXX-eff38b468461
1471417604615 8c6b2ef9-XXXX-XXXX-XXXX-9efb1223e383
私はそこからタイムスタンプ情報だけが欲しいので、Linux シェル スクリプトを使用してすべてのタイムスタンプを 1 つのファイルに書き込みたいです。ファイルの合計サイズ (31 ファイル サイズ) は 4.5 GB です。このタスクを効率的に実行する方法が欲しいです。私はこれを Python で実行しましたが、シェル スクリプトで実行したいです。
答え1
を使用するとawk
、ファイルを含むディレクトリから次の操作を実行できます。
awk 'FNR>1 {print $1}' * >output.txt
FNR>1
各ファイルからレコード番号が1より大きいすべてのレコードに一致します。つまり、各ファイルからヘッダーを削除します。これらのレコードについては、
{print $1}
タイムスタンプである最初のフィールドのみを出力します。