我的脚本执行此操作
ls -1A | awk '/model[1-9]+.dat/' | while read FN
但是当我将模型[1-9]增加到模型[1-1000]时,它与我期望的文件不匹配。
答案 0 :(得分:2)
当将模型[1-9]增加到模型[1-1000]时采用随机数
喜欢model100.dat,model105.dat。 model11.dat ... etc
不,这不是随机的。
[1-1000]
并不意味着“1到1000之间的任何数字”。它表示1到1,或0,或0或0之间的数字。这只是0或1.这显然不是你的意思。
如果您只想查看前1000个文件,可以创建一个模式,指出文件名必须包含一个数字[0-9]
,两个数字[0-9][0-9]
或三个数字{{1} }。将[0-9][0-9][0-9]
放在每个之间以表示“或”。所以写成|
。这意味着0-999。
然后你可以将你的awk部分改为
([0-9]|[0-9][0-9]|[0-9][0-9][0-9])
答案 1 :(得分:2)
你根本不需要awk,bash大括号扩展就足够了。
for filename in model{1..1000}.dat; do ...; done