ファイルを含むフォルダがあり、unixコマンド「tr」を使用して以前と同じ名前の出力を使用してファイルを繰り返す必要があります(可能な場合)(以下のコードは機能しません)。
FILES=/root/Desktop/prova/*
for f in $FILES ; do
echo "Processing $f file..."
cat $f | tr "\n" "," > $f.tmp & mv $f.tmp $f
done
cat "$f" | tr "\n" "," > "$f"
このコマンドを使用して各ファイルの出力をリダイレクトする方法を理解できません。次に、別のforループを使用してN個のツールコマンドを生成し、一緒に実行する必要があります。ループ研究に関する提案はありますか?
ベストアンサー1
これはcat
無駄なCPUの無駄なので、削除してください。出力を一時ファイルに送信し、ファイル名を変更し直します。
tr x y < input > input.tmp && mv input.tmp input
一度インストールすると、moreutils
次のように実行できますsponge
(一時ファイルを後ろから処理します)。
tr x y < input | sponge input
これらの名前を変更すると、完全にリンク解除されたソースファイルinput
に設定されたクールなACLまたはセキュリティコンテキストが破損する可能性があります。