我正在处理 53 个 xml 文件 ( az-0.xml
~ az-52.xml
)。
我跑去sed '/<loc>/!d; s/[[:space:]]*<loc>\(.*\)<\/loc>/\1/' az-*.xml > AZ
把所有的东西都放进去,<loc>
然后把它们合并到一个文件(AZ
)中。
它工作正常,但我发现 loc 中的东西有错误和混乱的顺序。我想以正确的顺序合并它们,就像ls -v
(按数字)的输出一样。
az-0.xml az-1.xml ... az-52.xml
如何-v
为该正则表达式提供选项?(我很新sed
)
az-*.xml
这里不涉及 sed 正则表达式,它是关于shell glob 扩展的排序规则。如果你有
zsh
,那么你可以使用n
数字 glob 限定符如果您需要使用 bash,则它没有等效的数字 glob 标志,但您可以使用外部版本
sort
ex。或者(如果您确切知道有多少文件)一个带有大括号扩展的简单 shell 循环