在多个文件上运行命令

时间:2018-08-16 20:09:47

标签: bash multiple-files

我的脚本(bash shell)从文件* 026.s01中提取了一些数字

input=${input_dir}/*026.s01
seq=` cat $input |awk 'NR>3{print substr($2,5,7)}' | sort -n | head -1`
first_sht=` cat $input | awk 'NR>3{print int($3)}' | head -1`
last_sht=` cat $input | awk 'NR>3{print int($3)}' | tail -1`
echo " $seq $first_sht last_sht" |   awk '{printf("%6s%10s%9s\n",$1,$2,$3)}' >> dir_file_SEQ-$seq.txt.

如何在多个文件${input_dir}/*.s01上执行此操作?

我尝试使用:

for file in ${input_dir}/*.s01
do
done
echo " $seq $sail_line $src_dir" |   awk '{printf("%6s%10s%9s\n",$1,$2,$3)}' >> dir_file_SEQ-$seq.txt

但是我没有得到几个dir_file_SEQ-???。txt文件,而只有一个只有dir_file_SEQ-.txt的文件,其内容如下:

  Date       229         
  Date       409         
  Date       589         
  Date       769         
  Date       949         
  Date      1129

我认为“日期”是由错误引起的,这不是我要的内容,第二列包含我所问的值之一,但我仍然想念其他值。

2 个答案:

答案 0 :(得分:0)

bash for loop应该立即为您完成:

SRC_DIR=/root for FILE in ${SRC_DIR}/*.mp4 do YOUR COMMANDS done

答案 1 :(得分:0)

它以这种方式工作

for file 
in /dir./*.s01

do
   input=$file