我想用grep到的folloging secuence一个XML文件:grep的与Tab和回车XML
user defined modules)
|-->
<module>
这是我的代码:
function check()
{
OLDIFS=$IFS
IFS=$'\n'
fileArray=($(find . -type f -not -path "./folder1/*" -not -path "*/folder2/*" -not -path "./folder3/*" -name "pom.xml" \
| xargs awk -v RS='^$' 'match($0,/\|--> \(autogenerated code\)\t\n\t[^\n]+/,a){print a[0]}'))
IFS=$OLDIFS
# get length of an array
numberOfFiles=${#fileArray[@]}
# read all filenames
for ((i=0; i<${numberOfFiles}; i++));
do
echo "ERROR:Found user code modules (file:line:occurrence): ${fileArray[$i]}"
done
if [ "$numberOfFiles" != "0" ]; then
echo "SUMMARY:Found $numberOfFiles pom.xml file(s) containing user code modules."
exit 1
fi
}
check
不清楚如何能我处理它,因为它包含在中间的回车和标签中,并不像检索一个标签的内容那么简单。我在Linux下使用shell openSUSE 12.
我已经尝试grep -P但不兼容多种模式。一些技巧?
我建议使用XML/HTML解析器(xmllint,xmlstarlet ...)。 – Cyrus
[编辑]你的问题显示[mcve],包括简洁,可测试的样本输入和预期输出,以便我们可以开始考虑如何帮助你。 –
我试图编辑代码示例。第一行包含在文本的末尾:TAB + ENTER。该示例的第二行以TAB开始。仍然是主要问题。非常感谢您的提示。 – user2961008