
今、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ランキング
-
東横INNの無理宿泊券について
-
Xperiaで ' と " の出し方...
-
ドリカムのこの歌は?
-
羞恥心3rdシングルはCD化され...
-
CDシングルの話
-
アルフィーやサザン、B’z、スピ...
-
UAが誰かとコラボして新曲を出...
-
Mr.Childrenについて
-
CDシングルの形状
-
THE ALFEE 『木枯らしに抱かれて』
-
ダニエルパウダーのbad day
-
LifehouseのFirstTimeについて...
-
シングルの話
-
マッキー(槇原敬之)の曲につ...
-
シングルの話
-
AKBの12月発売シングル
-
乃木坂46の今までのシングル曲...
-
EXILE Lovers Againオーディシ...
-
トイレットペーパーはシングル...
-
グロリア・エステファンの最新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Xperiaで ' と " の出し方...
-
アルフィーやサザン、B’z、スピ...
-
SMAPの「世界に一つだけの...
-
自宅トイレットペーパーが毎日1...
-
皆さんが、初めて買ったレコー...
-
シングルCDは何でほとんどが4...
-
プリンスのラズベリーベレーに...
-
アポストロフィとシングルクォ...
-
アルバム出てからシングル
-
シングルCDって、今のノート...
-
堂本剛くんのソロプロジェクト...
-
ジャスティンさん
-
Get チュー!の読み方
-
宇多田ヒカルの新譜
-
アルバムよりシングル(を集め...
-
my little loverのこと
-
世界に一つだけの花
-
ZARDのシングルやアルバムのジ...
-
イルカさんのディスコグラフィー
-
CDAとCDSの違いは?
おすすめ情報