Shell脚本 - 循环文件名并提取文件名中的数字

时间:2014-08-22 11:58:24

标签: shell awk sed

使用linux shell脚本,我试图遍历目录中的所有文件名,并在处理文件之前从文件名中提取数字。

这样的事情:

for files in `ls *.gz`
do
        echo "Looking at...  $files"
        gunzip $files
        echo "$files" | awk '/[0-9]/' ' {print $1}'
        echo "$files is  unzipped"
done

感谢您对此提供任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以替换文件名中的所有非数字。

echo "${files//[!0-9]/}"

如果文件名包含多个数字运行,这显然会产生连接数字。例如,12a34.gz变为1234

此替换机制是仅限Bash的功能,并且不受普通sh支持。