今、awkを使ったシェルスクリプトを作っています。
aaa bbb ccc ddd
ee ff gggg hhh
といったファイルから、
bbb,ccc
ff,gggg
を取り出したいと思っています。
そこで、以下のコマンドをwhileでまわして、$iを増加させることにより、
ファイルを一行ずつ読み取り、目的の列を取り出したく思っています。
A=`cat sample.txt|awk 'NR == $i {print NR, $2;}'`
B=`cat sample.txt|awk 'NR == $i {print NR, $3;}'`
ところが、awkコマンドの中の$iがシングルクォーテーションでくくられているので、
変数展開されなくて困っています。
何かよい方法があればご教授いただけますでしょうか?
No.2ベストアンサー
- 回答日時:
シングルが使えないならダブルでくくるとか
A=`cat sample.txt|awk "NR == $i {print NR, \\$2;}"`
-vオプションでawkの変数に代入するとか
A=`cat sample.txt|awk -v i=$i 'NR == i {print NR, $2;}'`
ですけど、そもそも、1行ずつ取り出すのに catで全部出力→awkで全部入力→1行だけ出力 って効率悪すぎませんか?
同じwhileを使うにしても
cat sample.txt | while read line
do
A=`echo ${line} |awk '{print $2;}'`
B=`echo ${line} |awk '{print $3;}'`
...
と1行ずつ処理するとか、bashだったら
cat sample.txt | while read line
do
declare -a a=($line)
A=${a[0]}
B=${a[1]}
と配列を使うとか
行番号が欲しかったら cat -n sample.txtにして $1に行番号を入れるか、i=`expr $i + 1` で行番号を数えるとか
あるいは
awk '{ NRと$2と$3を使った処理 }' sample.txt
とawkだけで済ましてしまう、とか
教えていただいた、下記の方法で作成しました。ずいぶんと見やすくなったと思います。
cat sample.txt | while read line
do
A=`echo ${line} |awk '{print $2;}'`
B=`echo ${line} |awk '{print $3;}'`
素人の質問に、ご丁寧に回答を下さってありがとうございました。
精進します。今後ともよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) awkの$NR 2 2022/10/24 11:11
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- UNIX・Linux gawk 3 2022/08/18 14:07
- その他(プログラミング・Web制作) awkの正規表現での最左最短マッチング 3 2022/07/01 00:10
- その他(プログラミング・Web制作) awkの BEGIN{RS=""} で空行を削除できるが、削除できる仕組みが分からない。 1 2023/05/02 14:14
- UNIX・Linux ブレース展開の使い方での質問です 2 2023/07/15 16:06
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- 教えて!goo このサイトで専門用語で質問して専門用語が分かる回答者を期待したが回答が得られない その例として例えば 4 2023/05/06 22:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シングルCDって売ってないの?
-
Xperiaで ' と " の出し方...
-
昔のサザンオールスターズの曲...
-
EXILEのプロモーションビデオ
-
ダブルベット!?かシングル2台か?!
-
ラブホにシングルってないんで...
-
沢田研二全盛期って1975年くら...
-
AKB48が売れたきっかけは?
-
セミダブルからシングルへの変更
-
ジャニーズWESTのCD.DVDのおす...
-
発達障害児で4月から新1年生で...
-
セリーヌ・ディオン「TO LOVE Y...
-
THE BOOM 「島唄」の...
-
アーティストのCD売上枚数ラン...
-
ハローキャンディー
-
シングルの話
-
香里奈出演の積水ハウスのCM
-
CDAとCDSの違いは?
-
今週末の土日に櫻坂の7枚目のシ...
-
吉宗初心者です。吉宗のダブル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
最近はシングルで戸建買う人も...
-
ラブホにシングルってないんで...
-
SMAPの「世界に一つだけの...
-
自宅トイレットペーパーが毎日1...
-
成人男性の方に質問です。 お通...
-
Xperiaで ' と " の出し方...
-
吉宗初心者です。吉宗のダブル...
-
SPEEDの曲
-
AKB48が売れたきっかけは?
-
アポストロフィとシングルクォ...
-
シングルCDって、今のノート...
-
いつから12cmのみだけにな...
-
今、awkを使ったシェルスクリプ...
-
セミダブルからシングルへの変更
-
アルバム出てからシングル
-
キャノンのプリンタのCMで…
-
「I LOVE HIP HOP」(DA)っても...
-
岡村靖幸は今どうしているので...
-
伝説のコンビニという歌
-
シングルCDって売ってないの?
おすすめ情報