25

改行なしでファイルの末尾に文字列を追加するにはどうすればよいですか?

たとえば、>> を使用している場合、ファイルの最後に改行が追加されます。

cat list.txt
yourText1
root@host-37:/# echo yourText2 >> list.txt
root@host-37:/# cat list.txt
yourText1
yourText2

yourText1 の直後に yourText2 を追加したい

root@host-37:/# cat list.txt
yourText1yourText2
4

4 に答える 4

71

echo の -n パラメータを使用できます。このような:

$ touch a.txt
$ echo -n "A" >> a.txt
$ echo -n "B" >> a.txt
$ echo -n "C" >> a.txt
$ cat a.txt
ABC

編集:ああ、文字列と改行を含むファイルが既にありました。とにかく、これはここに残しておきます。誰かの役に立つかもしれません。

于 2012-01-05T08:17:48.000 に答える
12

printfデフォルトとして新しい行を出力しないため、代わりに使用してください:

printf "final line" >> file

テスト

ファイルを作成し、末尾に改行を付けずに余分な行を追加してみましょう。cat -vet新しい行を表示するために使用することに注意してください。

$ seq 2 > file
$ cat -vet file
1$
2$
$ printf "the end" >> file
$ cat -vet file
1$
2$
the end
于 2015-11-23T22:47:18.387 に答える
6
sed '$s/$/yourText2/' list.txt > _list.txt_ && mv -- _list.txt_ list.txt

sed実装が-iオプションをサポートしている場合は、次を使用できます。

sed -i.bck '$s/$/yourText2/' list.txt

2 番目のソリューションでは、バックアップも作成されます (最初のソリューションでは、手動で行う必要があります)。

または:

ex -sc 's/$/yourText2/|w|q' list.txt 

また

perl -i.bck -pe's/$/yourText2/ if eof' list.txt
于 2012-01-05T08:15:45.473 に答える