使用Sed时,错误的字符将被删除

使用Sed时,错误的字符将被删除,sed,Sed,我正在使用(或试图使用)sed指令从文本行中去除前导和尾随空格和/或空行 sed的/^[\t]*/;s/[\t]*$//^$/d' 它是有效的,但它似乎也在去除我文本中的反斜杠 例如,对于输入字符串:test\\\test结果是:test\test 我认为这是可以避免的,但我正在努力解决。任何帮助都将不胜感激。 作为参考,我从AppleScriptObjC中将其称为shell脚本 谢谢 安迪这不是塞德。你忘了引用你的变量了吗 $ str='test\\\test' $ echo "$str" t

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

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

它是有效的,但它似乎也在去除我文本中的反斜杠

例如,对于输入字符串:
test\\\test
结果是:
test\test

我认为这是可以避免的,但我正在努力解决。任何帮助都将不胜感激。 作为参考,我从AppleScriptObjC中将其称为shell脚本

谢谢


安迪

这不是塞德。你忘了引用你的变量了吗

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

$sed's/^[\t]*/;s/[\t]*$//^$/d'您可能会发现这更简单、更健壮:

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

谢谢你的快速回复,格伦。。。我尝试使用的完整命令是
do shell script“echo”&| quote |和text&| quote |和| sed的/^[:blank:]*/;s/[:blank:]*$/^$/d'
我已经根据你的建议修改了脚本,Glenn似乎已经改善了情况,但没有治愈它。。。现在不是去掉两个反斜杠字符,而是只去掉一个。。。新的代码行是
设置要执行shell脚本的文本“sed的/^[:blank:][]*/;s/[:blank:][]*$/;/^$/d'我相信你没有领会杰克曼先生的观点:不是sed在剥离反斜杠,而是你用来给sed或awk供电的壳管。谢谢你的提示mpez0。是的,我完全理解了格伦的观点……我没有更好地理解如何引用该死的东西的内容以便它工作:/不用担心,我会的我继续!干杯。再次感谢Glenn…我已经在引用支持中使用Applescript builtin更改了调用的语法,而不是自己手动引用它…终于成功了。再次感谢您提供的提示。
设置文本以执行shell脚本“sed’s/^[:blank:][]*/;s/[:空白:]*$//^$/d'Hmmm.遗憾的是,与我之前的sed尝试结果完全相同。。。如果我通过了
test\\\test
它将返回
test\test'。。。我尝试使用的代码是
set text to do shell脚本“echo”&| quote |&| text&| quote |&| awk'NF{gsub(/^[:space:]+|[:space:]+$/,“&&| quote&|&| quote&| print}”`