请问大家:
我有200个文件夹,每个文件夹里有4个.txt文件(file6.txt file7.txt file16.txt file17.txt),需要把每个文件夹里的4个.txt文件按列合并为1个file.txt,请问批量操作的代码怎么写?
我自己尝试写了个for嵌套循环,但是发现它只对第一个文件夹进行了合并操作,请问这是什么原因???
代码如下:
for i in *
do
for j in *.out
do
cd $i
awk 'NR==6{print $0}' $j >> file6.txt
awk 'NR==7{print $0}' $j >> file7.txt
awk 'NR==16{print $0}' $j >> file16.txt
awk 'NR==17{print $0}' $j >> file17.txt
paste file6.txt file7.txt file16.txt file17.txt > search_$i.txt
mv search_$i.txt /mnt/f/search_sum/
done
done
依次对200个文件夹中的.txt文件执行awk提取操作
-
- 帖子: 13
- 注册时间: 2021-08-23 21:23
- 系统: ubuntu20.4.2
- astolia
- 论坛版主
- 帖子: 6459
- 注册时间: 2008-09-18 13:11
Re: 依次对200个文件夹中的.txt文件执行awk提取操作
你在第二个for里面用了cd进入了下级目录,for循环结束时没有退回到上级目录
-
- 帖子: 13
- 注册时间: 2021-08-23 21:23
- 系统: ubuntu20.4.2