ファイル名を含む3つの文字列を追加することで構成された変数を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}' {} +