我想在不同的行中打印不同的单词,这些单词使用bash脚本用逗号分隔。
ent0
ent4
ent1,ent5
ent2,ent6
ent3,ent7
ent29,ent30
我想在不同的行中打印每个单词。
答案 0 :(得分:1)
使用c = {"197315"=>{:qty=>1,
:modifiers=>[
{"197322-197321"=>{ :qty=>1,
:modifiers=>['2222'=>'33333', '4444'=>'55555']
}
},
{"197323-197319"=>{:qty=>1}
}
]
}
}
d = {"197315"=>{:qty=>1,
:modifiers=>[
{"197322-197321"=>{:qty=>1,
:modifiers=>['4444'=>'55555', '2222'=>'33333']
}
},
{"197323-197319"=>{:qty=>1}
}
]
}
}
arr_to_set(c) == arr_to_set(d)
#=> true
,
tr
使用echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | tr ',' '\n'
,
sed
两者都会产生,
echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | sed 's/,/\n/g'
编辑:
您的要求不够明确。如果你想用逗号和空格分开,
ent0 ent4 ent1
ent5 ent2
ent6 ent3
ent7 ent29
ent30
或
echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | tr ', ' '\n'
这将产生,
echo 'ent0 ent4 ent1,ent5 ent2,ent6 ent3,ent7 ent29,ent30' | sed 's/\(,\| \)/\n/g;'
如果内容位于文件中,例如ent0
ent4
ent1
ent5
ent2
ent6
ent3
ent7
ent29
ent30
,请使用它代替input.txt
。
echo
答案 1 :(得分:0)
如果我理解您的问题,您只需使用IFS
,printf
和命令替换就可以轻松完成,例如
$ IFS="$IFS,"; printf "%s\n" $(<file.txt)
ent0
ent4
ent1
ent5
ent2
ent6
ent3
ent7
ent29
ent30
(完成后不要忘记将IFS
重置为默认$' \t\n'
(空格标签换行符)。您可以保存oldifs="$IFS"
,然后运行命令,并设置{ {1}}然后轻松重置