将最后一行以外的所有换行替换为空格


Answers:


42

您可以使用paste -s -d ' ' file.txt

$ cat file.txt
one line
another line
third line
fourth line

$ paste -s -d ' ' file.txt 
one line another line third line fourth line

1
凉!该-s-d选择似乎像这种情况下做出。
mkc 2014年

10

您可以使用tr替换所有换行符来sed分隔空格,并将输出传递给最后一个空格并替换回换行符:

tr '\n' ' ' < afile.txt | sed '$s/ $/\n/'



-1

这对我有用。

tr '\n' ' ' < file_with_new_line   | sed 's/\ $//g' > file_with_space

那也将删除最后一个换行符。
terdon

我认为不是,它工作正常。您是否真的尝试过???
阿披吉特(Abhijit)

是的,我有。你有吗 您的tr命令将所有换行符替换为空格,而sed命令将删除最后一个空格。这将导致文件中没有最后的换行符,因此问题也不是。顺便说一句,gsed命令中没有使用int点。由于您使用$,它只能在末尾匹配,因此g毫无意义。您也不需要逃脱空间,``也没有区别。
terdon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.