在bash中循环几个文件扩展名
我在文件夹中有一个文件列表,我只想处理其中的几个文件。该文件夹包含file.qc、file.qc.gz file.qc.stat file.qc.count等文件在bash中循环几个文件扩展名,bash,loops,Bash,Loops,我在文件夹中有一个文件列表,我只想处理其中的几个文件。该文件夹包含file.qc、file.qc.gz file.qc.stat file.qc.count等文件 我想在bash中编写一个循环,只打开file.qc和file.qc.gz,而忽略其他文件扩展名(如qc.stats或qc.count)只需在循环中指定多个全局变量: #!/bin/bash # Gracefully cases where there are no matches shopt -s nullglob for f i
我想在bash中编写一个循环,只打开file.qc和file.qc.gz,而忽略其他文件扩展名(如qc.stats或qc.count)只需在循环中指定多个全局变量:
#!/bin/bash
# Gracefully cases where there are no matches
shopt -s nullglob
for f in *.qc *.qc.gz
do
echo "Found: $f"
done
您也可以将其缩写为
*.qc{,.gz}
,它扩展为相同的内容。只需在循环中指定多个全局变量:
#!/bin/bash
# Gracefully cases where there are no matches
shopt -s nullglob
for f in *.qc *.qc.gz
do
echo "Found: $f"
done
你也可以把这个缩写写为
*.qc{,.gz}
,它可以扩展成同样的东西。我试过这个,但我也想编辑文件,也就是说,.qc和.qc.gz需要不同的awk状态,它给我一个错误。这个循环遍历所有你想要的文件。这取决于你对他们做些有用的事情。如果要有条件地执行操作,可以使用If
语句。例如echo“此代码对所有文件运行”;如果[$f==*.qc.gz]];然后echo“此代码仅对.qc.gz文件运行”;fi
我尝试了这一点,但我也想对文件进行部分编辑,即,.qc和.qc.gz需要不同的awk状态,因为它会给我一个错误。这会在您想要的所有文件上循环。这取决于你对他们做些有用的事情。如果要有条件地执行操作,可以使用If
语句。例如echo“此代码对所有文件运行”;如果[$f==*.qc.gz]];然后echo“此代码仅对.qc.gz文件运行”;fi
我尝试了此操作,但我还想部分编辑文件,即.qc和.qc.gz需要不同的awk状态,它会给我一个错误我尝试了此操作,但我也想部分编辑文件,即.qc和.qc.gz需要不同的awk状态,它会给我一个错误