awkで変数を設定する

awkで変数を設定する

ファイル名を含む3つの文字列を追加することで構成された変数をawkに設定したいと思います。このコマンドは、anumberとの間の行を印刷する必要があります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}' {} +

おすすめ記事