1

我正在使用(或尝试使用)一个 sed 指令从文本行中去除前导和尾随空格和/或空行...

sed 's/^[ \t]*//;s/[ \t]*$//;/^$/d'

它正在工作,但它似乎也从我的文本中剥离了反斜杠。

例如,使用输入字符串:test\\\test结果为:test\test

我假设这是可以避免的,但我正在努力解决它。任何帮助将非常感激。作为参考,我在 AppleScriptObjC 中将其称为 shell 脚本

谢谢

安迪

4

2 回答 2

0

您可能会发现这更简单、更健壮:

awk 'NF { gsub(/^[[:space:]]+|[[:space:]]+$/,""); print }'
于 2013-10-04T17:07:45.550 回答
0

这不是 sed。您是否忘记引用变量?

$ str='test\\\test'
$ echo "$str"
test\\\test
$ sed 's/^[ \t]*//;s/[ \t]*$//;/^$/d' <<< "$str"
test\\\test

顺便说一句,我会使用[[:blank:]]而不是[ \t]

于 2013-10-04T16:41:38.157 回答