私はたくさんの.text
ファイル、most標準のnlで終わります。
カップルには最後にターミネーターがありません。最後の物理バイトは(通常)英数字です。
cat *.text >| /tmp/joined.text
ですが、joined.textのいくつかの場所で、ファイルの最初の行が前のファイルの最後の行の終わりにあることに気付きました。前のファイルを調べたところ、行末記号がないことがわかりました-連結について説明しました。
それが問題を提起しました、欠落している改行をそのまま続けて連結する最も簡単な方法は何ですか?これらのオプションはどうですか?
必要に応じて改行を追加できる別のコマンドはawk
です。
awk 1 ./*.txt
ここでの1は、awkで真の条件を取得する最も簡単な方法です。真の条件に対するawkのデフォルトのアクションは入力行を出力することなので、この目的のために機能します。
GNU cut
のようないくつかのcut
実装では、次のことができます:
cut -b 1- ./*.text > output
欠落している場合、欠落している改行が追加されるため。
この便利なPerlワンライナーは、まだそこにない場合にのみ、欠落している改行を追加することができます。
Perl -lpe '' ./*.text > output
頭に浮かぶ最初のアプローチは、ファイルをループして、改行を追加してその内容を出力することです。
_for f in *text; do
printf '%s\n' "$(cat < "$f")"
done > /tmp/joined.text
_
$()
は既存の改行文字を削除するため、各ファイルの末尾に_\n
_が1つだけ存在します。