a
都市の温度シリーズを説明する変数を検討してくださいa
。 9つのディレクトリ(、、、、、、、、、、、、、、、、、)a1
があり、各ディレクトリa2
にはテーブル(それぞれ、、、、、、、、、、、、)が含まれています。a3
a4
a5
a6
a7
a8
a9
a1.txt
a2.txt
a3.txt
a4.txt
a5.txt
a6.txt
a7.txt
a8.txt
a9.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