尝试实现一个简单的 awk 脚本以将一个大订单文件分成多个单独的订单,但在开始行时出现语法错误。
我有一个 lastTimeCount.txt 文件,它只包含一些用于文件命名目的的订单,但我的终端出现以下错误:
这是我的脚本代码
awk -v lastCount=$(cat lastTimeCount.txt) '
BEGIN{ count=lastCount }
/<Order/ {
rfile="order-" ++count ".xml"
print > (rfile)
getline
while ($0 !~ "<\/Order>" ) {
print > (rfile)
getline
}
print > (rfile)
close(rfile)
}
END{ print count > (lastTimeCount.txt) }
' Input_file
答案 0 :(得分:0)
相反,让您的脚本成为 shell 脚本。使用 shellcheck.net 检查您的脚本
#!/bin/sh
awk -v lastCount="$(cat lastTimeCount.txt)" '
BEGIN{ count=lastCount }
/<Order/ {
rfile="order-" ++count ".xml"
print > (rfile)
getline
while ($0 !~ "<\/Order>" ) {
print > (rfile)
getline
}
print > (rfile)
close(rfile)
}
END{ print count > (lastTimeCount.txt) }
' "$@"
然后:
sh splitxml.sh some_file