他の列の値に基づいて列をフィルタリング

他の列の値に基づいて列をフィルタリング

2つの列と3,00,000を超える行を含むテキストファイルがあります。形式は次のとおりです

Filename1.txt Num1
Filename2.txt Num2
Filename3.txt Num3

Numx50より大きく200より小さいファイル名をすべて別のファイルにコピーしたいと思います。

このファイル名を別のファイルにコピーした後、このファイルをすべて別のフォルダにコピーしたいと思います。

どうすればいいですか?

ベストアンサー1

必要に応じて同時に比較してコピーできますawk

awk '$2>50 && $2<200 {system("cp -- "$1" /path/to/destination/")}' file.txt

destinationファイルをディレクトリにコピーする場合は、必要に応じてこの値を変更してください。

  • $2>50 && $2<200必要な比較をしてください

  • 一致するものがあれば、関数によって完了したcp操作({system("cp -- "$1" /path/to/destination/")})を実行します。system()awk

おすすめ記事