运行在UNIX系统中的多个文件的脚本(Run a script over multiple file

2019-07-29 17:40发布

开始学习一些shell脚本。 我有一个文件运行的perl脚本。 我怎么会写一个shell脚本,它运行perl脚本上的所有文件一堆次关键字“文件名”?

因此,在英语,

for /filename/ in filenames  
    perl myscript.pl completefilename

谢谢。

Answer 1:

find . -name "filename*" -exec perl myscript.pl '{}' \; 


Answer 2:

for i in $(\ls -d filenames)
do
    perl myscript.pl $i
done

在“ls”的命令的前反斜杠是暂时禁用任何别名。

HTH



Answer 3:

find . -path "\*filename\*" -exec perl myscript.pl {} \;

编辑:逃星,不想这里的标记



Answer 4:

如果你在你的文件名有空格,用旧的备用

find . -maxdepth 1 -print0 | xargs -0 perl myscript.pl


Answer 5:

在bash:

files=`ls -1 *`
for $file in $files;
do
    perl myscript.pl $file;
done


Answer 6:

一个内胆:

$ for file in filename1 filename2 filename3; do perl myscript $file; done

取而代之的是空间分隔的文件名,你还可以使用通配符的列表,例如:

$ for file in *.txt *.csv; do perl myscript $file; done



Answer 7:

FILES = “ 关键字

在 “$ FILES” 做perl的myscript.pl $ F F完成

从http://www.cyberciti.biz/faq/bash-loop-over-file/



Answer 8:

我个人使用zsh的外壳,它给你一个很好的方式对一组子目录的递归运行命令。 它还允许您更改文件,用蹩脚的创造.wav文件MP3文件时,这是handly的后缀:

对于i中** / * WAV。 跛$ I $ I:r.mp3

您还可以通过管道将一个命令的输出到另一个,这是我的东西我经常使用的,当我下载了一些BitTorrent的文件,并希望看到每个下载已完成百分比:

对于i中** / * TXT。 grep的百分之-H $ I | 尾-1



文章来源: Run a script over multiple files in unix
标签: unix shell