我使用下一个命令
out=cat /path/myFile | cut -f2,3 -d ',' | sed -r -e 's/,/ /g
myFile看起来像:
a1a1a1a1,b1b1b1b1,c1c1c1c1,d1d1d1d1d1
a2a2a2a2,b2b2b2b2,c2c2c2c2,d2d2d2d2d2
a3a3a3a3,b3b3b3b3,c3c3c3c3,d3d3d3d3d3
在我得到之后:
b1b1b1b1 c1c1c1c1
b2b2b2b2 c2c2c2c2
但结果写在一行:
b1b1b1b1 c1c1c1c1 b2b2b2b2 c2c2c2c2 ...
有什么建议吗?
答案 0 :(得分:2)
如果正确
,您可能会在没有引号的情况下说echo $out
echo "$out"
答案 1 :(得分:1)
你有引用问题:
out="$(cat /tmp/myfile | cut -f2,3 -d ',' | sed -r -e 's/,/ /g';)"
有效,$ out有:
b1b1b1b1 c1c1c1c1
b2b2b2b2 c2c2c2c2
b3b3b3b3 c3c3c3c3
此外,对于单个字符替换,您可以使用tr
out="$(cat /tmp/myfile | cut -f2,3 -d ',' | tr ',' ' ')"
然后,使用它:
echo "$out"