我不经常这样做,而且当我这样做时,总是很敏感。我有下面的 sed 脚本,它从超过一百万个文件中提取数字模式。我需要将它发送到 AWK,因此当找到匹配的模式时,它会打印找到它的文件名。行号会很好,但不要贪心。
期望的输出
文件名1 000-323423-33
文件名2 000-323423-33
文件名3 000-323423-33
我尝试了各种方法,但没有任何效果,有经验的人可以提供适当的指导吗?先感谢您!
#!/bin/sh
#shopt -s nullglob
FILES=/mnt/c/temp/1/*.txt
for f in $FILES
do
echo "Processing $f"
sed -nr \
-e '/[0-9]{3}-[0-9]{6}-[0-9]{2}/{
s/.*([0-9]{3}\-[0-9]{6}\-[0-9]{2}).*/\1/
G
p
}' $f
done