【发布时间】:2017-09-12 13:47:13
【问题描述】:
我的本地文件包含方括号和正则括号等特殊字符。
当试图用 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 包含原始文件名。
我想它必须做文字字符。到目前为止,我的搜索还没有提供任何有用的东西。感谢您的支持。
【问题讨论】:
-
发布您的实际代码,而不是对其的二手描述。
-
整个 $f 字符串可能无法进入 sed,因此这可能是一个公平的 bash 问题。最好有一个简单的脚本来解决这个问题。
-
同意其他人的观点,$f 可能不是你想的那样。你也可以试试:newName=
sed -e "s/ddatum/${firstDate}/g" <<< "${f}"