开始学习一些shell脚本。我有一个在一个文件上运行的perl脚本。我如何编写一个shell脚本来对所有带有关键字“filename”的文件运行perl脚本?
所以用英语,
for /filename/ in filenames
perl myscript.pl completefilename
感谢。
答案 0 :(得分:11)
find . -name "filename*" -exec perl myscript.pl '{}' \;
答案 1 :(得分:4)
find . -path "\*filename\*" -exec perl myscript.pl {} \;
编辑:转载星标,不想在这里加标
答案 2 :(得分:4)
for i in $(\ls -d filenames)
do
perl myscript.pl $i
done
'ls'命令前面的反斜杠是暂时禁用任何别名。
HTH
答案 3 :(得分:2)
如果文件名中有空格,请使用旧备用
find . -maxdepth 1 -print0 | xargs -0 perl myscript.pl
答案 4 :(得分:1)
在bash中:
files=`ls -1 *`
for $file in $files;
do
perl myscript.pl $file;
done
答案 5 :(得分:1)
一个班轮:
$ for file in filename1 filename2 filename3; do perl myscript $file; done
您可以使用通配符代替以空格分隔的文件名列表,例如:
$ for file in *.txt *.csv; do perl myscript $file; done
答案 6 :(得分:0)
FILES = “关键字”
对于“$ FILES”中的f 做 perl myscript.pl $ f 完成
答案 7 :(得分:0)
我个人使用zsh shell,它为您提供了一种在一组子目录上递归运行命令的非常好的方法。它还允许您更改文件的后缀,这在使用lame创建.wav文件的MP3文件时很方便:
for i in ** / * .wav;跛脚$ i $ i:r.mp3你也可以将一个命令的输出传递到另一个命令,这是我在下载一些bittorrent文件时经常使用的东西,并希望看到每个下载完成的百分比:
表示** / * .txt; grep -H%$ i |尾巴-1