/usr/bin/sed 's/,/\\n/g' comma-delimited.txt > newline-separated.txt
这对我不起作用。我只是删除了“,”,但现在只是没有分隔标记。
你必须有一个旧版本的 sed,所以你需要在你的替代品中放一个文字 LF char,即
/usr/bin/sed 's/,/
/g' comma-delimited.txt > newline-separated.txt
您甚至可能需要转义 LF,因此请确保最后一个字符 '\' 之后没有空格字符
/usr/bin/sed 's/,/\
/g' comma-delimited.txt > newline-separated.txt
我希望这有帮助。
这可能对您有用:
echo a,b,c,d,e | sed 'G;:a;s/,\(.*\(.\)\)/\2\1/;ta;s/.$//'
a
b
c
d
e
解释:
G
,
's,即\n
:a;s/,\(.*\(.\)\)/\2\1/;ta
s/.$//
我尝试了以下方法,看起来很笨拙,但确实有效。容易理解。我使用 tr 来替换占位符 §。唯一需要注意的是占位符,必须不在字符串中。
ps -fu $USER | grep java | grep DML| sed -e "s/ -/§ -/g" | tr "§" "\n"
将为您提供命令行的缩进输出。DML 只是一些服务器名称。
在 AIX7 上,答案 #3 效果很好:我需要在段落的开头插入一个换行符,这样我就可以执行 grep -p 以在生成的“节”中过滤“mksysb” lsnim -l | /usr/bin/sed 's/^[a-zA-Z/\^J&/' (实际上初始行有一个转义的换行符: lsnim -l | /usr/bin/sed 's/^[a-zA -Z/\ &/') 调用命令显示 ^J 语法...