我正在尝试解析具有已知格式的文本文件,但是每一行都不是100%一致。
文件的每一行都包含以下格式的数据... x03:0xDEADBEEF ... x04:0xDEADBEEF ... x05:0xDEADBEEF ... ect
我希望能够从此字符串中提取特定的x值并将其打印到stdout。
我无法找出执行此字符串搜索的最佳方法,我确定有一个未使用sed的解决方案,希望有人可以提供帮助。
我尝试了使用偏移量进行非常简单的pamaeter扩展,但是发现字符串的格式在每一行上都不完全相同。
我现在已经尝试过:
for line in data.txt; do grep -Po 'x10:[^.]*' $line; grep -Po 'x05:[^.]*' $line; grep -Po 'x06:[^.]*' $line;grep -Po 'x07:[^.]*' $line; done
这似乎将打印所有x10,然后打印所有x05 ect。
答案 0 :(得分:0)
这是解决我问题的方法。
let count=1
while read line; do
echo "Test Result: ${count}"
let count=count+1
grep -Po 'x10:[^.]*' <<< "$line"
grep -Po 'x05:[^.]*' <<< "$line"
grep -Po 'x06:[^.]*' <<< "$line"
grep -Po 'x07:[^.]*' <<< "$line"
grep -Po 'x22:[^.]*' <<< "$line"
grep -Po 'x23:[^.]*' <<< "$line"
grep -Po 'x24:[^.]*' <<< "$line"
grep -Po 'x25:[^.]*' <<< "$line"
grep -Po 'x26:[^.]*' <<< "$line"
grep -Po 'x27:[^.]*' <<< "$line"
echo
done < data.txt