0

通常、テキストファイルを並べ替えるためにこれを行うことができます。

cat infile.txt | sort > outfile.out
mv outfile.out > infile.txt

ループでそれを行うこともできます:

for inp in ./*; do
    fname=${inp##*/}
    cat "$inp" | sort  > ./"$fname".out
done

ループを作成する以外に、ターミナル内のすべてのファイルに対して上記を実行するための1つのライナーはありますか?

4

2 に答える 2

5

ループには何の問題もないので、これはばかげた練習だと思いますが、次のことができます。

ls | xargs -n 1 sh -c 'sort $1 > $1.tmp; mv $1.tmp $1' sh
于 2013-03-11T13:15:54.077 に答える
3

あなたと一緒GNU sortにできること:

$ sort file -o file 

xargs次のようにループする代わりに使用できます。

$ ls | xargs -i% -n1 sort % -o % 

オプションがない-o場合:

$ sort file > tmp && mv tmp file 

$ ls | xargs -i% -n1 sort % > tmp && mv tmp % 
于 2013-03-11T13:01:35.370 に答える