이 질문에 대한 해결책을 찾으려고 노력했습니다 . awk
솔루션 에 사용 하고 싶었습니다 .
입력 파일은 아래와 같습니다.
-bash-3.2$ cat file
ramesh
ramesh_venkat
ramesh3_venkat3
ramesh4
ramesh5
venkat
venkat3
venkat4
I 사용 awk
후 초 값을 추출 명령을 _
아래와 같이.
awk -F "_" '{print $2}' file
그러나 위의 명령이 올바른 값을 인쇄하지만 출력에 빈 줄이 나타납니다. 두 가지 질문이 있습니다.
질문 1
어떻게 난 단지 얻을 수 있도록 출력에 빈 줄을 제거 할 수 있습니다 venkat
및 venkat3
출력에?
내가 사용하는 경우 printf
대신 print
내에서 awk
, 나는 얻을 venkatvenkat3
내가 달성하기 위해 원하지 않는 출력한다. 나는 출력을 원한다.
venkat
venkat3
질문 2
이러한 값을 연관 배열 또는 무언가 로 사용하여 실제로 값이 $1
열 에서 발생하는지 어떻게 알 수 있습니까?
나는 다음과 같은 것을 성취하고 싶었습니다.
awk -F "_" '$2==1{print $1}' file
편집하다
나는 awk
Stephane 의 해결책을 보지 못했습니다 . 내가 언급 한 것과 똑같은 일을하고 있습니까?
aawk가 아닌 경우 쉘의 파일에서 빈 줄을 제거하는 방법을
—
kenorb
awk
은 같은 일을하지 않습니다. 귀하의 접근 방식은 단어가로 분리 된 경우에만 다른 단어에만 포함될 수 있다고 가정합니다_
. OP의 예에서는 그렇지만 게시 된 모든 답변은와 같은 경우뿐만 아니라 처리doglion
합니다dog_lion
.