在文件名中转义括号。 Shell脚本

时间:2019-01-24 17:24:32

标签: linux bash

我有很多文件的模式名称:

N.apple(d).log

例如001.apple(d).log002.apple(d).log

问题是,当我尝试对bash脚本中的文件进行处理时,总是出现错误“没有这样的文件或目录”,即使使用了逃脱的括号:

for i in $(ls my_folder); do file=$(echo $i | sed 's/(/\\(/g' | sed 's/)/\\)/g') ; head -1 my_folder/$file; done

感谢任何提示

1 个答案:

答案 0 :(得分:1)

使用引号。另外,当外壳可以很好地扩展通配符时,请不要使用ls。

for i in my_folder/*; do head -1 "$i"; done