作者:joechl | 来源:互联网 | 2023-10-14 18:39
我正在尝试解析具有已知格式的文本文件,但是每一行都不是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。
这是解决我问题的方法。
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