今、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ランキング
-
ラブホにシングルってないんで...
-
レコードのEP盤とは、どのよう...
-
CDの大きさ
-
「シングルベッド」の意味って...
-
SCDとは??
-
Xperiaで ' と " の出し方...
-
the band apartのfool proofの...
-
ミッシェル・ガン・エレファン...
-
嵐のシングル・アルバム初回限定版
-
コブクロの「蕾」 何分何秒です...
-
KinKi Kidsの歴年の売上枚数
-
WANDS 1994年2月2日
-
シングルCDって、今のノート...
-
トイレットペーパーはシングル...
-
Secret Love~秘密的恋情~を歌...
-
自宅トイレットペーパーが毎日1...
-
シングルの話
-
gacktファンの方々へ質問です
-
ACIDMANのアルバムについて
-
バブルガム・ブラザーズ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自宅トイレットペーパーが毎日1...
-
Xperiaで ' と " の出し方...
-
SMAPの「世界に一つだけの...
-
アポストロフィとシングルクォ...
-
吉宗初心者です。吉宗のダブル...
-
シングルCDって、今のノート...
-
ラブホにシングルってないんで...
-
AKB48が売れたきっかけは?
-
CDAとCDSの違いは?
-
アルバム出てからシングル
-
成人男性の方に質問です。 お通...
-
SPEEDの曲
-
シングルCDって売ってないの?
-
『間抜けな』邦題。
-
レンタルでアーティストはちゃ...
-
いつから12cmのみだけにな...
-
岡村靖幸の名盤やおすすめのア...
-
Sixpence None The Richerの「K...
-
埼玉県、東京都で8cmシングルが...
-
ごくせん2の挿入歌に使われていた
おすすめ情報