Lij*_*mas 2 shell text file-manipulation
我只是在 shell 中执行一些任务时思考这个问题。
如何转换.txt包含以下格式文本的文件[垂直方向]:
H
e
l
l
o
W
o
r
l
d
Run Code Online (Sandbox Code Playgroud)
注意:没有任何字母的行包含空格和 EOL
我需要转换为:
Hello World
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令:cat file1.txt |tr '\n' ' ' >file2.txt
输出:
H e l l o W o r l d
Run Code Online (Sandbox Code Playgroud)
我怎样才能进一步进行?抱歉,如果这个问题已经出现了。如果是这样,请向我提供解决方案的链接或任何解决方法的命令。
您正在用空格替换新行。相反,使用以下命令删除它们-d:
$ echo "H
> e
> # <- there is a space here
> W
> o" | tr -d '\n'
He Wo
Run Code Online (Sandbox Code Playgroud)
有一个文件:
tr -d '\n' < file # there is no need to `cat`!
Run Code Online (Sandbox Code Playgroud)
这里的问题是最后一个新行被删除,因此结果是 POSIXly 的 0 行文件。