Bashから末尾の改行を削除する方法は?

Bashから末尾の改行を削除する方法は?

私はPerlのように動作するものを探していますchomp。入力内容を単に印刷して改行した場合は、最後の文字を引くコマンドを探しています。

$ printf "one\ntwo\n" | COMMAND_IM_LOOKING_FOR ; echo " done"
one
two done
$ printf "one\ntwo" | COMMAND_IM_LOOKING_FOR ; echo " done"
one
two done

(BashとZshのコマンド置換はすべての末尾の改行を削除しますが、最大1つの末尾の改行を削除することを探しています。)

ベストアンサー1

perl次のことなく行うことができますchomp

$ printf "one\ntwo\n" | perl -pe 's/\n\z// if eof'; echo " done"
one
two done

$ printf "one\ntwo" | perl -pe 's/\n\z// if eof'; echo " done"
one
two done

しかし、自分で試してみてはいかがでしょうかchomp

$ printf "one\ntwo\n" | perl -pe 'chomp if eof'; echo " done"

おすすめ記事