
変数から\ 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 を追加しません。
答え2
echo
\n
デフォルトは追加です。-n
省略に使用
[6]root@lab7:~> echo 'lol' |od -c
0000000 l o l \n
0000004
[6]root@lab7:~> echo -n 'lol' |od -c
0000000 l o l
0000003