2

我有这个字符串

[1.1.1.1 2.2.2.2]

你能告诉我如何删除[ ]. 我没有成功sed

我希望它最终会是这样的:

1.1.1.1
2.2.2.2
4

7 回答 7

2

tr -d '[]'将删除方括号:

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

要拆分,您可以使用 sed 命令,例如's/ /\n/'

$ tr -d '[]' <<< "[1.1.1.1 2.2.2.2]" | sed 's/ /\n/'
1.1.1.1
2.2.2.2
于 2013-10-22T16:38:45.257 回答
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
于 2013-10-22T16:37:44.987 回答
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
于 2013-10-22T16:38:32.263 回答
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
于 2013-10-22T16:39:25.777 回答
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
于 2013-10-22T16:39:46.550 回答
0

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

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

但最好的是之前由 anubhava 开发的 posix

于 2013-10-28T16:03:14.527 回答
0

这可能对您有用:

$ sed 's/\[\(.*\) \(.*\)\]/\1\n\2/' <<< "[1.1.1.1 2.2.2.2]"
1.1.1.1
2.2.2.2
于 2013-10-22T16:38:33.413 回答