【发布时间】:2012-08-09 06:14:19
【问题描述】:
我正在尝试使用 bash 脚本遍历目录中包含文件名中某个单词的所有文件。
以下脚本循环遍历目录中的所有文件,
cd path/to/directory
for file in *
do
echo $file
done
ls | grep 'my_word' 仅给出文件名中包含单词“my_word”的文件。但是我不确定如何用 ls | 替换 * grep 'my_word' 在脚本中。
如果我这样做,
for file in ls | grep 'my_word'
do
echo $file
done
它给了我一个错误“意外标记 `|' 附近的语法错误”。这样做的正确方法是什么?
【问题讨论】:
-
正确的语法应该是
for file in $(ls | grep 'my_word'); do,但使用find或 glob` 仍然是正确的方法。 -
是的,谢谢,后来在史蒂夫的回答的帮助下想通了:)