私はcat *.txt >> output.txtコードを使用しました。このコードが実行するアクションはそのタスクですが、ここではUnixがファイルを出力ファイルにコピーする順序を決定します。これは、ファイルの発生または生成時間に基づいてファイルをコピーしたいので、望ましくない。また、コピー形式を制御できるように、次のコマンドを使用しました。
for tablename in 'cat ${current_path}/table.txt(have defined the order)
do
for data in 'cat path/$tablename.txt
do
echo "$data" >> final/output.txt
done
done
ここではこれを行いますが、forループが機能するため、単一のtxtの複数のコピーを作成します。
答え1
質問を理解したとしましょう。
xargs < "${current_path}/table.txt" cat > final/output.txt
あなたが必要なすべてです。xargs
"table.txt"ファイルを読み取り、cat
指定された順序で実行して標準出力に出力し、標準出力を目的の場所にリダイレクトします。リダイレクトはファイルが実行される前に一度だけ実行されるため、複数回xargs
実行されるファイルが多い場合でもcat
機能します。cat
xargs
時系列でソートしたい場合
ls -t | xargs cat > final/output
厄介なファイル名(スペースや改行など)がない場合は機能します。
答え2
for tablename in $(cat ${current_path}/table.txt);do
for word in $(cat path/${tablename}.txt);do
echo ${word}
done
done > final/output.txt
これはうまくいきます。どういう意味なのかよく分からない
ここではこれを行いますが、forループが機能するため、単一のtxtの複数のコピーを作成します。
もっと詳しく知ることができますか?
- 編集 - 以下の提案に従ってください。