我有模式如下图所示
hi
hello
hallo
greetings
salutations
no more hello for you
我尝试使用下面的命令来替换标签的所有换行符
sed -e "s_/\n_/\t_g"
但它不工作。
可能有人请帮助? 我正在寻找在SED / AWK的解决方案。
我有模式如下图所示
hi
hello
hallo
greetings
salutations
no more hello for you
我尝试使用下面的命令来替换标签的所有换行符
sed -e "s_/\n_/\t_g"
但它不工作。
可能有人请帮助? 我正在寻找在SED / AWK的解决方案。
不知道你想输出
# awk -vRS="\n" -vORS="\t" '1' file
hi hello hallo greetings salutations no more hello for you
这里tr
比较好,我认为:
tr "\n" "\t" < newlines
作为Nifle在评论所说, newlines
这里是文件保持原文的名称。
因为sed
是这么线为导向,这是更复杂在这样的情况下使用。
sed '$!{:a;N;s/\n/\t/;ta}' file
你不能一行一行地的基础替换换行符sed
。 你必须积累的线条和替换它们之间的换行。
text abc\n <- can't replace this one
text abc\ntext def\n <- you can replace the one after "abc" but not the one at the end
这sed
脚本积累的所有行并消除所有的换行,但最后:
sed -n '1{x;d};${H;x;s/\n/\t/g;p};{H}'
顺便说一句,你sed
脚本sed -e "s_/\n_/\t_g"
想说的“全部替换斜线,然后用斜线后面的选项卡换行”。 下划线正在对分隔符的作用s
命令,以便斜杠可以更容易地使用搜索和替换字符。
paste -s
-s串连所有命令行顺序每个单独输入文件的行的。 除了在每个输入文件的最后一行的每一行的换行字符被替换为制表符,除非由-d选项另有规定。
你几乎有你的sed脚本,你只需将其更改为:
sed -e "s/\n/\t/g"
该\
足够逃生,你不需要添加_
你需要添加/
前g
末让SED知道这是脚本的最后一部分。