剪切-f参数无法正常工作

时间:2014-04-12 07:35:49

标签: bash shell cut

我使用下一个命令

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 ...

有什么建议吗?

2 个答案:

答案 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"