Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash脚本循环浏览不同的文件并执行命令_Bash_For Loop_Move - Fatal编程技术网

bash脚本循环浏览不同的文件并执行命令

bash脚本循环浏览不同的文件并执行命令,bash,for-loop,move,Bash,For Loop,Move,我在一个目录中有25个文件,全部命名为xmolout1,xmolout2,xmolout25 这些都是.txt文件,我需要将这些文件的最后80行复制到新的.txt文件中 最好,这些将自动生成正确的编号(取自原始文件,例如xmolout10将生成final10等) 之后可以删除原始文件 我是bash脚本的新手,我知道我可以使用tail-80 filename.txt>newfilename.txt复制最后80行,但我不知道如何实现循环 提前感谢如果您知道要处理的文件数量,可以在循环中使用计数器变量

我在一个目录中有25个文件,全部命名为xmolout1,xmolout2,xmolout25

这些都是
.txt
文件,我需要
将这些文件的最后80行
复制到新的.txt文件中

最好,这些将自动生成正确的编号(取自原始文件,例如xmolout10将生成final10等)

之后可以删除原始文件

我是
bash
脚本的新手,我知道我可以使用
tail-80 filename.txt>newfilename.txt
复制最后80行,但我不知道如何实现循环


提前感谢

如果您知道要处理的文件数量,可以在循环中使用计数器变量:

for ((i=1; i<=25; i++))
do
    tail -80 "xmolout$i" >> "final$i"
done

你试过什么吗?我把这个问题的确切标题放进搜索引擎,第一次点击给了我答案……我做了,第一次点击提供的一般答案就是这里给出的答案。它和我以前的一样,但我不知道如何自动循环浏览25个文件。。。正如我提到的,我从来没有写过类似于“脚本”的东西。谢谢,第二个答案是本例中最好的选择:)@StevenVanuytsel是的,第二种语法看起来更好,但请记住(在第二种语法中),括号在调用循环之前会展开,因此如果循环太长,它比第一个语法慢。它也不使用变量作为边界。
for i in {1..25}
do
    tail -80 "xmolout$i" >> "final$i"
done