在执行搜索/替换时,sed会删除部分字符串

时间:2017-09-12 13:47:14

标签: bash sed

我的本​​地文件包含特殊字符,如方括号和常规括号。

当尝试用SED替换部分文件名时,文件名为

原始文件名如下所示:

  • ddatum - ffirma - bbetreff (wwer) [tags_][Beleg]_007246-1 copy.pdf

在进行sed替换时,我得到的结果如下:

  • 20161219 - ffirma - bbetreff (wwer) copy.pdf

另一个例子:

  • 原文:ddatum - ffirma - bbetreff (wwer) [tags_][Beleg]_007858.pdf
  • 结果:20161231 - ffirma - bbetreff (wwer)

我使用的sed命令是:

 newName=`sed -e 's/ddatum/'\$firstDate'/g' <<< "\$f"`

$ firstDate包含简单的日期字符串。 $ f包含原始文件名。

我想它必须做文字字符。到目前为止,我的搜索没有任何有用的东西。感谢您的支持。

1 个答案:

答案 0 :(得分:0)

这样做:

newName=`sed -e "s/ddatum/$firstDate/g" <<< "$f"`

示例:

$ f="ddatum - ffirma - bbetreff (wwer) [tags_][Beleg]_007246-1 copy.pdf"
$ firstDate="20161231"
$ newName=`sed -e "s/ddatum/$firstDate/g" <<< "$f"`
$ echo $newName 
20161231 - ffirma - bbetreff (wwer) [tags_][Beleg]_007246-1 copy.pdf