Linux [SED]放入shell脚本时的奇怪行为
当我这样做的时候Linux [SED]放入shell脚本时的奇怪行为,linux,sed,Linux,Sed,当我这样做的时候 sed 1s/#text_to_be_replaced#/replacement_string/ filename 然后输出与预期的一样,但是当我将其放入shell文件中时 这样做 lineNumber=1 sed $lineNumbers/#text_to_be_replaced#/replacement_string/ filename 然后它就不能像预期的那样工作,替换字符串被插入到要替换的文本上方的一行。为什么会这样?应该是: sed "${lineNumber}s
sed 1s/#text_to_be_replaced#/replacement_string/ filename
然后输出与预期的一样,但是当我将其放入shell文件中时
这样做
lineNumber=1
sed $lineNumbers/#text_to_be_replaced#/replacement_string/ filename
然后它就不能像预期的那样工作,替换字符串
被插入到要替换的文本上方的一行
。为什么会这样?应该是:
sed "${lineNumber}s/text_to_be_replaced/replacement_string/" filename
应该是:
sed "${lineNumber}s/text_to_be_replaced/replacement_string/" filename
将空的
$$lineNumbers
替换为${lineNumbers}s
,即1s
,并告知它是否给出了所需的结果。我还强烈建议在sed
之后加上引号。将$lineNumbers
替换为${lineNumbers}s
,即1s
,并告诉它是否给出了所需的结果。我还强烈建议在sed
之后加上引号。