ファイルの最初の行を読み、コマンドラインで指定されている列を見つけようとしています。例:command <column> <textfile>
したがって$1
、columnisとtextfile $2
。
ファイル列を配列に分割するawkコマンドを作成してから、配列要素が列引数と一致するかどうかを確認するforループを作成しています。コードは次のとおりです。
awk 'NR == 1 {split ( $0,titles ); for ( i=1 ; titles[i] != "$1" ; i++ ) ; FS = " "} NR > 1 {print $i }' file
$1
awkが認識する最初の列ではなく、最初のコマンドライン引数を参照するようにします 。forループで列引数を取得するにはどうすればよいですか?$1
の変数を作成して渡すことができると思いましawk
たが、それが機能しなかったか、間違っていました-どちらかまたは両方。私はこれについて何時間も探していました。私は明白なまたは愚かな何かを見逃しているかもしれませんが、それは私が本当にこれを行う方法を知る必要があるところまで来ています。また、答えを探す際に、私はについてのものを読みましたARGV[]
。私は思っARGV[1] == $1
たが、どうやらそうではないようだARGV
。配列は何を指しているのだろうか?あなたが提供できるどんな助けにも感謝します。
(注:混乱ファイルを支援するために、$ 2と呼ばれるテキストファイルの編集バージョンがあります)