tr -d はキャリッジリターンでは動作しません。

tr -d はキャリッジリターンでは動作しません。

変数から\ nを削除したいです。 「tr -dを使う」という回答をたくさん見つけましたが、うまくいきませんtr -dでした。

echo "$test" | od -c
0000000   4   4   2   5   2  \n
0000006

その後、使用します。tr -d

test2=$(echo $test | tr -d '\n')

しかし何も変わらなかった

echo "$test2" | od -c
0000000   4   4   2   5   2  \n
0000006

ベストアンサー1

を使用すると、期待どおり(改行文字など)tr -d '\n'が削除されます。\nしかし、echoコマンドを使用してこれを確認しています。Echoコマンド自体は入力文字列の末尾に改行文字を入れるため、期待される出力は表示されません。

変数を確認するには、次のコマンドセットを使用します。

test2=$(echo "$test" | tr -d '\n')
printf "%s" $test2 | od -c
echo -n $test2 | od -c

スクリプト出力:

0000000   h   e   l   l   o
0000005
0000000   h   e   l   l   o
0000005

注:echo -n:echoのマニュアルページでは、-nは末尾の改行を出力しません。 printf:最後に \n を追加しません。

おすすめ記事