【发布时间】:2021-04-13 16:51:29
【问题描述】:
我正在尝试搜索不同的文件扩展名,然后针对这些文件中的每一个运行 awk 脚本,但是终端正在寻找用户输入,我想知道它是否特定于使用 awk 脚本运行它口译员?或者这只是我在命令中做错的事情,因为我对 bash 和 awk 还比较陌生
find ./ -type f -name '\*.txt' | while IFS= read file; do awk -f awkScript.awk "$file" done;
更新*** 我错过了一个分号,但是当我添加它并填写其余的文件扩展名时,我正在寻找它给我;
-bash: syntax error near unexpected token `done'
在这个命令上;
find ./ -type f \( -iname \*.gs -o -iname \*.pcf -o -iname \*.gr -o -iname \*.gsx -o -iname \*.en -o -iname \*.gst -o -iname \*.gosu -o -iname \*.descriptor -o -iname \*.txt \) -print0 | while read -d $'\0' file do awk -f awkScript.awk "$file"; done;
【问题讨论】:
-
你在
done之前缺少; -
感谢@ArkadiuszDrabczyk。这解决了我添加到问题中的简化命令的问题,但使用完整命令创建了另一个问题。我已更新问题以包含完整命令
-
在您的代码上添加一个 shebang 并将其粘贴到 shellcheck.net 以验证您的 shell 脚本语法
-
这帮助我解决了我的问题。非常感谢!
标签: bash while-loop