awk를 통해 문자열을 구문 분석하고 파이프나 세미콜론 없이 요소만 가져옵니다.

awk를 통해 문자열을 구문 분석하고 파이프나 세미콜론 없이 요소만 가져옵니다.

이 문자열을 원해요

AUGUSTYN|Stanisław|3589238

아니 |그리고:

나는 비슷한 것을 시도했습니다 :

cat baza|grep "AUGUSTYN" -n|awk -F '|' '{print $1,$2,$3,$4}'`

( baza내 텍스트 파일이야, AUGUSTYN그 사람 이름이야)

이 명령의 결과는 다음과 같습니다.

1:AUGUSTYN Stanisław 3589238 

보시다시피, 이 파이프도 있습니다 :( 저는 이것을 얻고 싶습니다:

1 AUGUSTYN Stanisław 3589238

이 기본 파일에서 텍스트를 가져옵니다.

AUGUSTYN|Stanisław|3589238
BARAN|Stanisław|3511477
BUCZEK|Marek|3511526
CABAJ|Wanda|3511483
CEPAK|Józef|3511067

|and 없이 문자열을 얻으면 좋겠지 :만 텍스트가 저장된 줄 수를 얻어야 합니다. 그래서 grep을 사용해야했습니다. 다른 더 확실한 해결책도 찾을 수 있다면 좋을 것입니다.

어떻게 보관할 수 있나요? 나는 한 시간 전에 이것을 배우기 시작했습니다. 도와주세요.

답변1

grep꼭 필요한 것은 아닙니다 awk. 혼자서도 할 수 있습니다.

awk 'BEGIN{FS="|"} $1 == "AUGUSTYN" { print NR " " $1 " " $2 " " $3}'

답변2

| sed "s/:/ /"명령 끝에 추가하는 것은 어떻습니까? 그래서 이렇게

cat baza|grep "AUGUSTYN" -n|awk -F '|' '{print $1,$2,$3,$4}' | sed "s/:/ /"

내가 당신을 오해하고 당신이 1개의 명령으로 이것을 하고 싶어하지 않는 한.

관련 정보