파일이 있고 다음 출력 파일을 사용하여 사양에 따라 스크립트를 생성해야 합니다.
입력 파일에는 출력에 포함되어야 하는 처음 28줄의 헤더가 있습니다. 입력의 일부 줄에는 특정 매개변수 ZH:모든 값(예: ZH:100 또는 ZH:50)이 있습니다. ZH 매개변수가 위치한 열은 행마다 다릅니다.
내 출력 파일에는 헤더 라인과 해당 값이 100보다 큰 ZH 매개변수(예: ZH:105, ZH:200 등)가 포함된 라인이 포함되어야 합니다.
ZH 매개변수를 포함하지 않는 줄은 생략됩니다.
답변1
사용 head
및 grep
:
(
# get header
head -n 28 file
# grep lines with ZH value > 100
grep -Ew "ZH:.:[1-9][0-9]{2,}" file
) > outfile
답변2
최소한의 예가 없으면 원하는 것이 무엇인지 추측하기가 어렵습니다.
어쨌든 매개변수를 사용하여 행을 awk
필터링하려면 ZH
다음 스크립트가 도움이 될 수 있습니다.
awk 'strtonum(gensub(/^.*ZH:.:([0-9]+).*$/, "\\1", "1"))>100' file
그러면 비슷한 필드를 포함한 모든 줄이 인쇄됩니다 ZH:<one character>:<some number>
.
gensub
와 관련된 숫자를 추출합니다 ZH
. 그런 다음 숫자로 변환되어 숫자 100과 비교됩니다.