我想\n
用空白替换
输入file1
A\n
D\n
file2
我想要的输出
A
D
我尝试了以下命令但无法替换。
cat OUT | tr '\n' ' '
答案1
很多好的答案,我将添加 sed 方式
sed 's#\\n##g' file1 > file2
答案2
另一种方法是仅使用第一个字符cut
:
$ cut -c1 < input_file
A
D
答案3
来自帖子:
我尝试了以下命令,但无法替换,请执行需要的操作。
cat OUT | tr '\n' ' '
上述命令的问题是:tr
理解\n
为“换行符”
从联机帮助页:
$ man tr | grep Interpreted -A 18
SETs are specified as strings of characters. Most represent themselves. Interpreted sequences are:
\NNN character with octal value NNN (1 to 3 octal digits)
\\ backslash
\a audible BEL
\b backspace
\f form feed
\n new line
\r return
\t horizontal tab
\v vertical tab
因此,要指定\n
您需要指定 [反斜杠][n] 即\\n
(参见上面列出的规格)。因此使用以下命令:
tr -s '\\n' ' '
到cat
file1
并重定向( >
) 到file2
使用:
cat file1 | tr -s '\\n' ' ' > file2
但使用的问题tr
在于它将 EVERY\
和转换n
为空间。
所以,我建议使用sed
如下:
替换命令sed
( sed 's/old-string/new-string/g' in > out
) :
sed 's/\\n/ /g' file1 > file2
这里只有\n
(整个单词)会被转换成空格
答案4
您可以使用tr
tr -d '\\n' < input_file > output_file