tail -1 file1 >> file2 \n なし

tail -1 file1 >> file2 \n なし

これは簡単かもしれませんが、見回した後も私の問題に対する解決策を見つけることができません。 tail -1 file1を使用してfile1の最後の行を回復し、それを既存のファイルにテーブルとして追加して埋めることができるようにします。以下を実行して列(カンマ区切り)を削除します。

tail -1 file1 >> file2
echo "," >> file2
tail -1 file3 >> file2
echo "," >> file2
....

しかし、私の問題は、それぞれの新しい項目が新しい行で実行されることです。どうすればこれを防ぐことができますか?

ありがとう

答え1

tail -1最後の行を終了する改行文字を含む、指定されたファイルの最後の行を抽出します。この改行文字を削除する必要があります。

コマンド置換は$(…)末尾の改行を削除します。したがって、tail呼び出しをコマンド置換に入れます。

printf '%s,%s\n' "$(tail -n1 file1)" "$(tail -n1 file3)" >>file2

シェルとデータに応じてecho "$(tail -n1 file1),$(tail -n1 file3)" >>file2動作する場合も、動作しない場合もあります。最初の列がバックスラッシュで始まらず、-バックスラッシュを含む列がない場合、これは動作を保証します。

関連情報