sed不会删除外卡

时间:2013-10-22 16:33:31

标签: bash unix scripting ksh

我有这个字符串

[1.1.1.1 2.2.2.2]

您能告诉我如何删除[ ]。我没有成功使用sed

我最后想要那样:

1.1.1.1
2.2.2.2

7 个答案:

答案 0 :(得分:2)

tr -d '[]'会移除方括号:

$ tr -d '[]' <<< "[1.1.1.1 2.2.2.2]"
1.1.1.1 2.2.2.2

要拆分,您可以使用像's/ /\n/'

这样的sed命令
$ tr -d '[]' <<< "[1.1.1.1 2.2.2.2]" | sed 's/ /\n/'
1.1.1.1
2.2.2.2

答案 1 :(得分:1)

试试这个,

echo [1.1.1.1 2.2.2.2] | sed 's/\[//' | sed 's/\]//'| sed 's/ /\n/'
1.1.1.1
2.2.2.2

答案 2 :(得分:1)

这可能有用

echo '[1.1.1.1 2.2.2.2]' | sed -e 's/\[//' -e 's/]//' -e 's/ /\n/'
1.1.1.1
2.2.2.2

答案 3 :(得分:1)

$ echo '[1.1.1.1 2.2.2.2]' | tr -d '[]'
1.1.1.1 2.2.2.2

$ for derp in $(echo '[1.1.1.1 2.2.2.2]' | tr -d '[]'); do echo $derp; done
1.1.1.1
2.2.2.2

$ echo '[1.1.1.1 2.2.2.2]' | tr -d '[]' | sed 's/\s\+/\n/g'
1.1.1.1
2.2.2.2

答案 4 :(得分:1)

将其用作:

echo '[1.1.1.1 2.2.2.2]' | sed -r 's/\[|\]//g'
1.1.1.1 2.2.2.2

或使用posix sed:

echo '[1.1.1.1 2.2.2.2]' | sed 's/[][]//g'
1.1.1.1 2.2.2.2

答案 5 :(得分:0)

这可能对您有用:

$ sed 's/\[\(.*\) \(.*\)\]/\1\n\2/' <<< "[1.1.1.1 2.2.2.2]"
1.1.1.1
2.2.2.2

答案 6 :(得分:0)

如果只有数字,空格和点,你也可以使用

echo '[1.1.1.1 2.2.2.2]' | sed "s/[^0-9. ]//g"

但最好的是anubhava之前的posix