
파일 이름을 사용하는 함수가 있습니다. 그런 다음 명령을 실행하고 두 패턴 사이의 출력(제외)을 필터링한 다음 명령의 파일 이름 출력과 함께 쉼표로 구분된 값을 출력합니다.
다음은 함수와 예상 출력입니다.
get_cons_obs() {
local line="${1}"
"command" -i "${line}" 2>&1 \
| awk '/^ERROR$/{print "ERROR"} /^START$/{flag=1;next} /^END$/{flag=0} flag' \
| xargs printf "${line},%s\n"
}
file01,thing01
file01,thing02
file01,thing03
.
.
.
awk
명령과 명령을 결합할 수 있나요 xargs printf
? 변수에 "플래그된" 줄을 추가할 수 없는 것 같습니다 $line
.
답변1
0이 아닐 line
때 인쇄할 수 있도록 쉘 변수를 awk에 전달하려는 것 같습니다 .flag
전.
awk -v line="$line" '. . . flag {printf "%s,%s\n", line, $0}'
또한보십시오
답변2
아래 명령으로 시도했는데 정상적으로 작동했습니다.
awk '/pattern1/,/pattern2/{print $0","FILENAME}' filename