下面的bash
似乎已经运行,但终端屏幕上没有显示文件名,而只是暂停。我似乎无法弄清楚为什么它现在不像过去那样工作。谢谢你:)。
的bash
while read line; do
sed -i -e 's|https://www\.example\.com/xx/x/xxx/||' /home/file
echo $line
done
文件
Auto_user_xxx-39-160506_file_name_x-x_custom_xx_91-1.pdf
Auto_user_xxx-48-160601_V4-2_file_name_x-x_custom_xx_101.pdf
coverageAnalysisReport(10).zip
答案 0 :(得分:3)
read
命令正在等待输入,因为没有指定它将从stdin读取。如果你输入几行并按下,你会看到循环的输入。
但是你很可能想要将文件重定向到循环:
while IFS= read -r line; do
printf "%s\n" "$line"
done < /home/file
但afai可以理解你有一个文件,其中包含你想要运行替换的其他文件名,在这种情况下你应该使用xargs
:
xargs -n 1 -I {} sed -i -e 's|https://www\.example\.com/xx/x/xxx/||' {} < /home/file