cygwin sed命令在脚本中与行内

时间:2018-04-04 21:37:31

标签: bash shell sed cygwin

我目前正在使用变量行输入运行sed,以从文件中删除一定数量的行。

sed -i '1,'$SomeVariable'd' somefile.extention

现在,如果我在cygwin中输入它,这将按预期工作。但是,如果我通过shell脚本运行它,它不会按预期删除行。它仍然会收集它们的内容,但之后不会删除它们。

在寻找解决方案时,我遇到了Why does sed behave differently in a shell script?

这不能回答我的问题,因为我已经确认bash正在运行sed而不是gsed。

1 个答案:

答案 0 :(得分:-1)

据我所知,sed在不同的系统中表现不同,它们是Mac version 10.11.6CentOS 6.5。但是,我不知道原因或有解决方案。但我知道相同的版本sed,它会在CentOS 6.5Ubuntu 14.04中输出相同的结果。

回到你的问题,我认为它来自引号。对于您输入的内容,您使用了相同单引号'1,'$SomeVariable'd'sed会对其进行插值(1,)($SomeVariable)(d),括号用于解释序列。所以我的建议是你可以尝试使用'1,${SomeVariable}d'

相关问题