我正在使用旧的Sun Solaris 2.5.1。我有几行文件,带有一行逗号分隔的数据字段,我需要将它们转换为新行上的每个字段。每个文件中都有可变数量的字段。
即
#cat recipe1
299834,43399,PRODUCT NAME HERE,4.02,344,MORE TEXT HERE,3423 etc...
需要:
#cat recipe1
299834
43399
PRODUCT NAME HERE
4.02
344
MORE TEXT HERE
3423
etc...
答案 0 :(得分:1)
所以你的意思是将逗号转换为换行符?
sed 's/,/\n/g' in.txt > out.txt
看起来旧的Solaris没有特殊的\ n序列。尝试使用真正的换行符:
sed 's/,/\
/g' in.txt > out.txt
编辑:更新为按@Ed Morton
的建议添加反斜杠答案 1 :(得分:1)
也许:
tr ',' '\r' < in > out
答案 2 :(得分:0)
您可以使用此awk
:
awk '$1=$1' RS=, recipe1
但是如果文件中有0
则会失败,所以最好使用:
awk '{$1=$1}1' RS=, recipe1
299834
43399
PRODUCT NAME HERE
4.02
344
MORE TEXT HERE
3423
答案 3 :(得分:0)
perl -pi -e 's/,/\n/g' your_file
PS:此命令将进行就地替换。因此,无需将输出重定向到新文件。退出文件本身将被修改。