我的数据库中有一个捕获错误的日志文件,该文件包含有错误且未更新的记录的列表。记录名称为 10 位数字并以 strA 开头:
Error: could not save changes to record strA5903427123
Error: could not save changes to record strB4403298440
Error: could not save changes to record strC5903427342
Error: could not save changes to record strD4403298988
Error: could not save changes to record strE5903427298
Error: could not save changes to record strF4403298232
Error: could not save changes to record strG5903427455
Error: could not save changes to record strH4403298223
我想提取十位数字和 A 的列表并删除“错误:无法保存对记录 str 的更改”,我该如何在 bash 中执行此操作,这是一个很长的列表,我有很多这样的文件,每个人都可以使用数据库。
答案1
这是你想要的吗?
sed -e 's/^.*str//' test.in
答案2
用于grep
列出以以下开头的 10 位数字 IDA
grep -Eo "A[0-9]{10}" file
输出
A5903427123
列出以任意大写字母开头的 10 位 ID。
grep -Eo "[A-Z][0-9]{10}" file
A5903427123
C5903427342
D4403298988
E5903427298
F4403298232
G5903427455
H4403298223
答案3
您可以按如下方式进行awk
:
awk '{print $8}' file | tr -d "str"
A5903427123
B4403298440
C5903427342
D4403298988
E5903427298
F4403298232
G5903427455
H4403298223