以前にこの質問を受けたことは本当に申し訳ありません。あまりにも基本的なようで、ドットをつなげていないので、狂っているようです!
デフォルトではテキストファイルがあり、特定の行の2番目のフィールドを変数に割り当てます。
VAR=$(awk 'NR==1 {print $2}' entry.txt)
ただし、時にはテキストファイルの最初の行に4つのフィールドがあることがあります。言いたい
If ROW 1 has 4 fields
VAR = $2, $3 & $4 concatenated
Else
VAR = $2
私はこれが基本的なawkであると確信しています。私はちょうど小さなプロジェクトを進めており、以前に使用したことがありません。本を読まなければならないことはわかりますが、これは本当に小さな台本です!
ありがとう
ベストアンサー1
awk 'NF == 4 { print $2 $3 $4; exit } { print $2; exit }' file
ファイルの最初の行に正確に4つのスペースで区切られたフィールドがある場合、2番目、3番目、4番目のフィールドが連結されます。それ以外の場合は、ファイルの最初の行の2番目のフィールドを返します。プログラムは何も印刷した後に終了するので、これは私たちが見る最初の行だけであると確信しています。
他の論理として:
awk 'NF == 4 { out = $2 $3 $4 } NF != 4 { out = $2 } { print out; exit }' file
または、
awk '{ out = $2 } NF == 4 { out = out $3 $4 } { print out; exit }' file
次のいずれかのコマンドがコマンド置換に含まれます。
var=$( awk ... )