複数のtxtファイルのデータを順番に単一のtxtファイルにコピーする方法[閉じる]

複数のtxtファイルのデータを順番に単一のtxtファイルにコピーする方法[閉じる]

私は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機能します。catxargs

時系列でソートしたい場合

   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の複数のコピーを作成します。

もっと詳しく知ることができますか?


- 編集 - 以下の提案に従ってください。

関連情報