데이터베이스에 오류를 캡처하고 오류가 있고 업데이트되지 않은 레코드 목록이 포함된 로그 파일이 있습니다. 레코드 이름은 strA로 시작하는 10자리입니다.
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
10자리 숫자와 A 목록을 추출하고 "오류: 레코드 str에 변경 사항을 저장할 수 없습니다"를 제거하고 싶습니다. bash에서 어떻게 할 수 있습니까? 목록이 길고, 이와 같은 파일이 많이 있습니다. 누구나 사용할 수 있습니다. 데이터베이스.
답변1
이것이 당신이 원하는 것입니까?
sed -e 's/^.*str//' test.in
답변2
grep
다음으로 시작하는 10자리 숫자 ID를 나열하는 데 사용됩니다 .A
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