選択基準に基づいてファイル/テーブルを移動する

選択基準に基づいてファイル/テーブルを移動する

a都市の温度シリーズを説明する変数を検討してくださいa。 9つのディレクトリ(、、、、、、、、、、、、、、、、、)a1があり、各ディレクトリa2にはテーブル(それぞれ、、、、、、、、、、、、)が含まれています。a3a4a5a6a7a8a9a1.txta2.txta3.txta4.txta5.txta6.txta7.txta8.txta9.txt

最初の行と4番目の列(スペース区切り文字を含む)で最も高い値を表すテーブルを別のディレクトリに移動したいと思います。これがどのように行われるかを知っている人はいますか?

ベストアンサー1

これは私があなたが言うファイルを生成するために使用したものです。

mkdir -p       another/directory
for   n in     1 2 3 4 5 6 7 8 9
do    mkdir   -p "a$n"
      printf  "$n $n $n 1$n $n $n $n $n\n" >"a$n/a$n.txt"   #1 marks 4th col
done

これは私が使用するファイルですmv

 mv "a$(((a=$(t=$(printf \\t)
 paste a[1-9]/a[1-9].txt /dev/null |
 sed -e"s/\( *[^ ][^ ]*[ $t]\)\{4\}[^$t]*/\1/g;y| |\n|;q" |
 sort -rn | head -n1))-10))/a${a#1}.txt" another/directory

私が正しいことを確認するために行ったことは次のとおりです。

cat another/directory/*

9 9 9 19 9 9 9 9

...しかし、私はそれを理解していませんでした。これは、ファイル名と一致する最も高い値によって異なります。以下は行われません。

file=$(
    grep -n . ./a[1-9]/a[1-9].txt |
    grep :1: |     cut -d\  -f1,4 |
    sort -rnk2,2
)
mv "${file%%:*}" another/directory

おすすめ記事