파일 이름이 포함된 세 개의 문자열을 추가하는 것으로 구성된 변수를 awk에 설정하고 싶습니다. 이 명령은 a
number 와 사이의 줄을 인쇄해야 합니다 b
.
find "$dir" \( -name \*.org -o -name \*.texi \) \
-exec awk -v a="$na" -v b="$nb" \
-v red="$(tput setaf 1)" \
-v nrm="$(tput sgr0)" \
-v rd="\033[1;31m" \
-v nr="\033[0m" \
's = "==>" FILENAME "<=="
FNR == 1 {f = 0}
FNR == a {print red, s, nrm; f = 1}
f {print; if (FNR == b) nextfile}' {} +
답변1
s = ...
awk 구문의 조건부 부분이 있습니다 condition {action}
. 다음과 같은 조치를 취해야 할 것 같습니다 FNR == 1 { ... }
.
find "$dir" \( -name \*.org -o -name \*.texi \) \
-exec awk -v a="$na" -v b="$nb" \
-v red="$(tput setaf 1)" \
-v nrm="$(tput sgr0)" \
'
FNR == 1 {s = "==>" FILENAME "<=="; f = 0}
FNR == a {print red, s, nrm; f = 1}
f {print; if (FNR == b) nextfile}' {} +