【发布时间】:2021-03-21 10:17:02
【问题描述】:
我有一个目录中的文件列表,其中文件有空格和 ()
File1 (in parenthesis).txt
File 2 (in parenthesis).txt
File name 3.txt
每个文本文件的一行是
我需要修改它看起来像这样
但我似乎无法得到它...我可以打印文件名但是当我尝试执行 sed 命令以将整行替换为我想要的内容时...
for FILE in "$(find . -type f -iname '*.txt')"
do
sed -i "s/^<short_description> .*$/<short_description>TEST-$FILE<\/short_description>/" "$FILE"
done
...这个给我一个错误 “sed: -e 表达式 #1, char 54: `s'' 的未知选项” 我假设这意味着我没有逃脱什么,但老实说我不知道是什么。
有人可以帮忙吗?
谢谢!
【问题讨论】:
-
我不能用给定的文件名重现这个;它们实际上是路径(包含/包含)吗?如果不是,它得到错误的具体文件名是什么?注意:将
set -x放在命令之前将使 bash 打印相当于正在执行的内容,这可能会让您更好地了解实际发生的情况。