여러 줄이 포함된 파일이 있습니다.
여기서 두 번째 열은 이지만 user_id
마지막 7개 숫자는 임의의 숫자입니다.
실제 신분증을 얻으려면 잘라내야 합니다.
1st character to the -7 character
그래서 내가 필요한 것은 각 행의 두 번째 열을 얻는 것입니다 .
awk의 기능을 검색했는데 substr
직접 작업을 수행할 수 없는 것 같습니다.
그렇다면 awk에서 첫 번째 문자를 -7자로 자르는 방법은 무엇입니까?
답변1
awk '{ print substr($2,1,length($2)-7) }'
length($2) <= 7이면 어떤 출력도 얻지 못합니다. 최소 길이가 있어야 합니까? 그렇다면 awk에서 min() 함수를 정의할 수 있습니다.
awk 'function min(a,b){return a<b?b:a} ..<rest of code>..'
답변2
두 번째 열에서 작업을 수행해야 한다고 가정합니다(마지막 7자 자르기).
[whatever command you use to open your file] | awk '{ print $2 }' | rev | cut -c 8- | rev
세부사항은 다음과 같습니다:
awk '{ print $2 }'
파일의 두 번째 열을 가져옵니다.
rev
문자열을 준비합니다(반대로). 마지막 N자를 제거 할 수 있는 방법이 없다고 생각해서 cut
이렇게 하면 역방향 문자열에서 처음 N자를 제거하게 됩니다.
cut -c 8-
문자열에서 처음 7자를 제거합니다. (반복적인 시도 끝에 발견되어 검증이 필요함)
rev
처리된 문자열을 반대로 바꿉니다. 이렇게 하면 원래 문자열이 표시되지만 7자는 제외됩니다.