使用Sed时,错误的字符被剥离

时间:2013-10-04 16:22:43

标签: sed

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

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

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

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

我认为这是可以避免的,但我正在努力。任何帮助将非常感激。 作为参考,我将其称为AppleScriptObjC

中的shell脚本

由于

安迪

2 个答案:

答案 0 :(得分:0)

这不是sed。你忘了引用你的变量吗?

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

顺便说一下,我使用[[:blank:]]代替[ \t]

答案 1 :(得分:0)

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

awk 'NF { gsub(/^[[:space:]]+|[[:space:]]+$/,""); print }'