使用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
感谢您对此提供任何帮助。
答案 0 :(得分:2)
您可以替换文件名中的所有非数字。
echo "${files//[!0-9]/}"
如果文件名包含多个数字运行,这显然会产生连接数字。例如,12a34.gz
变为1234
。
此替换机制是仅限Bash的功能,并且不受普通sh
支持。