各行に4つのフィールドが必要なファイルがあります。フィールドの数が少ない場合、その情報を行番号のログファイルに書きたいと思います。awkを使用している列が少ない行を見つける
Filed1line1| Filed2line1| Filed3line1| Filed4line1
Filed1line2| Filed2line2|
Filed1line3| Filed2line3| Filed3line3| Filed4line3
のような何か - 行番号2は、我々はawkを使用してこれを達成することができます
A.TXTファイルのための3つのフィールドを持っています。
実際に私は以下のコードスニペットを使用しています。フィールド数が<> 4ならば、私はそれを悪いファイルに書いています。それは良い働きをしています。しかし、私はログにNR値を書くことができません。
awk -F'|' -v DGFNM="$IN_DIR$DGFNAME" -v DBFNM="$IN_DIR$DBFNAME" '
$1 == "DTL" {
if (NF == 4) {
print substr($0, 5) > DGFNM
} else {
print > DBFNM
print NR >> $logfile
}
}
' "$IN_DIR$IN_FILE"
awk 'NF <4 {print NR}' 'は、4列未満の行の行番号を出力します。 –
は、(他の2つに似た)ログファイル用の新しい変数を定義し、 '>'を使う必要もなく、デフォルトで '>'を追加します(他の2つに似ています)。 – karakfa
'DGFNM'と' DBFNM'を正しく使用する構文を知っていますが、 'logfile'では正しくありませんでしたか? –