뭔가 grep -oE '<[^>]+>'
같은 :
$ echo "Job <472971> Job Name <aaaaaaaaaaa> User <bbbbbbbbb> Project <cccccc> Status <RUN> Queue <AL_Ptime>Interactive pseudo-terminal shell mode Submitted from host <lsf_login07> CWD </asdfghjklll/dsadasd/asda>" \
| grep -oE '<[^>]+>'
<472971>
<aaaaaaaaaaa>
<bbbbbbbbb>
<cccccc>
<RUN>
<AL_Ptime>
<lsf_login07>
</asdfghjklll/dsadasd/asda>
당신이 줄 바꿈을 제거 할 간단한 AWK이 같은에이 파이프, 당신이 할 수있는 사이에 공백이있는 경우 :
grep -oE '<[^>]+>' | awk '{printf "%s%s", (NR==1?"":" "), $0}'
또는 tr :
grep -oE '<[^>]+>' | tr "\n" " "
편집 : 그것을 사용
$ cat tst.awk
BEGIN { FPAT="<[^>]+>" }
{ for (i=1; i<=NF; i++) printf "%s%s", (i==1?"":" "), $i
printf "\n"
}
: 가정 해 영업 이익이 줄의 번호와 입력 파일을 사용하여, 하나는 GNU AWK로 전환 할 수
awk -f tst.awk file
을 파일입니다 :
를
$ cat file
Job <472971> Job Name <aaaaaaaaaaa> User <bbbbbbbbb> Project <cccccc> Status <RUN> Queue <AL_Ptime>Interactive pseudo-terminal shell mode Submitted from host <lsf_login07> CWD </asdfghjklll/dsadasd/asda>
Job <472971> Job Name <aaaaaaaaaaa> User <bbbbbbbbb> Project <cccccc> Status <RUN> Queue <AL_Ptime>Interactive pseudo-terminal shell mode Submitted from host <lsf_login07> CWD </asdfghjklll/dsadasd/asda>
또는 one-liner로 :
$ awk 'BEGIN{FPAT="<[^>]+>"} \
{for (i=1; i<=NF; i++) printf "%s%s", (i==1?"":" "), $i; printf "\n"}' file
<472971> <aaaaaaaaaaa> <bbbbbbbbb> <cccccc> <RUN> <AL_Ptime> <lsf_login07> </asdfghjklll/dsadasd/asda>
<472971> <aaaaaaaaaaa> <bbbbbbbbb> <cccccc> <RUN> <AL_Ptime> <lsf_login07> </asdfghjklll/dsadasd/asda>
tks Marc it 's work. 그러나 나는 또 다른 문제가있다 나는 많은 작업을 포함하고있는 파일에서 많은 행을 가지고있다. 따라서 출력에는 많은 행이있을 것이므로 awk 명령이 잘 작동하지 않는다. 내 출력이 나의 욕망과 같은 많은 행을 가질 수 있는지 궁금하다. 산출? – Lucil120
내 대답에 대한 해결책을 추가했습니다. –
Marc awk 파일을 사용하는 경우 grep 명령을 사용해야합니까? 왜냐하면 출력 파일이 입력 파일처럼 보이기 때문에 awk 파일 만 사용하기 때문입니다. grep 명령을 사용한 후 해당 awk 파일의 입력 파일이 출력 파일입니까? 나는 둘 다 시도했으나 잘 작동하지 않는다. – Lucil120