- ベストアンサー
awkでファイルから特定の行を抽出する方法
初心者です。 ファイル(a.txt) 2005.12.05 2.5,1.0,a01 5.0,2.0,9.5 2005.12.06 6.5,4.0,3.2 b1,3.0,7.5 2005.12.07 ・ ・ というようなファイルから2、5、8・・・行目を 抜き出しファイル(b.txt)に「awk」又は「perl」で出力する方法を教えて下さい。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- 「awk」で複数のファイルの特定行を変換する方法
初心者です。 「awk」又は「perl」を使って a.txt、b.txt…z.txtの中の1行目10カラム目の値を 全て「a」という値に一括で変換する方法を教えて下さい。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- awkで複数ファイルのある列を抽出し出力したい
awkプログラミングの初心者です。 今、複数ファイル(1000ファイル)から、それぞれある列(すべて同じ列番号)のデータを抜き出して、1つのファイルに出力したいと考えています。 具体的には、1列目に共通項、2列目以降に1000ファイル分の抽出された列を、合計1001列となるような1つのファイルとして出力したいと考えております。 awkを使って出力するには、どのようなスクリプトを作ればよいか教えていただけませんでしょうか。 <イメージ> 元となるファイル(例えば下記のように3ファイル、実際には1000ファイル)があります。 file1.txt: 1 10 2 15 3 17 : : 1000 25 file2.txt: 1 5 2 40 3 22 : : 1000 17 file3.txt: 1 9 2 20 3 16 : : 1000 32 出力後のファイルイメージ: 1 10 5 9 2 15 40 20 3 17 22 16 : : : : 1000 25 17 32 ちなみに、自分で作成したawkスクリプト(下記)では、上記出力後のイメージとは異なり、 縦にデータが結合されてしまいました。 awk `{print $2}` ./file*.txt > Output.txt 出力後のファイル: 10 15 17 : 25 5 40 :
- 締切済み
- Linux系OS
- 二つのファイルから条件に一致する行を抽出
AとBの二つのファイルがあります。 Aの2列目3列目の間に存在するBの2列目のファイルを抽出してCのファイルを作成したいです。 awkのifでチマチマ作ればできるとは思うのですが、他に簡単にできる方法はないでしょうか? awkだけでなくperlやpythonなどでも問題ないです。 <A> A 10 20 B 30 40 C 50 70 D 90 110 <B> あ 15 い 25 う 55 え 75 お 95 <C> あ 15 う 55 お 95
- ベストアンサー
- Python
- awkのファイル出力について
今までシェルスクリプトではレスポンスが悪い為awkを使い始めました やりたい物は一応作れたのですが、ファイル出力が美しく無いので ご教授ください。 shで A="/export/home/report" echo hogehoge > $[A]/test.txt という感じで、awkの中でファイル出力させるときに パスやファイル名を変数に入れてそこに出力する方法はないでしょうか? こんな感じでやるとエラーになります。 nawk '{ BEGIN{ A="/export/home/report" } END{ echo hogehoge > $[A]"/test.txt" } }'
- ベストアンサー
- Solaris系OS
- ファイルの3行目までを出力したい
Perl初心者です。 test.txtというファイルがあって、その中の1行目から3行目までを 出力したい場合はどうしたらいいでしょうか? open(FILE,"test.txt") || die "Open Error.\n"; @data = <FILE>; close(FILE); foreach (@data) { print $_; } これだと、ファイルの中身が全て出力されてしまいます。
- ベストアンサー
- Perl
- シェルスクリプトで複数ファイルを交互に操作する方法
Bシェルのスクリプトで複数のファイルを交互に操作したいと考えています。 例えば、 A.txt A A B.txt B B という2つのファイルがあったとして、これを交互に読み取り、 C.txt A B A B というファイルを作成したいと考えています。 現在は1行ごとに別ファイルを作成し、最後にそれをマージするという変な方法をとっています。 awkやperlを使用しないで、純粋にBシェルのスクリプトだけでスマートに実現するにはどのような方法がありますでしょうか。 よろしくお願いします。
- 締切済み
- Linux系OS
- awkの使い方について教えてください。
awkとperlなどの初心者です。 使い方が分かっていないのですが、 例えば出力のフィールドセパレータを,に変更するには どうすればいいでしょうか? awk '{OFS=,;print}' fileなどとやってみますが、 うまくいきません。2つ以上のコマンドを実行するときの 文法がわかっていないような気がするのですが。 あとperlでよくみかけるperl -neのnは何でしょうか? man perlとやってみても-wと-eの意味しかのっていなくて なからないのですが。ご教授下さい。
- ベストアンサー
- その他(プログラミング・開発)
- awkで二つのファイルを比較し出力する方法
UNIXで二つのファイルを使って別ファイルを出力する 処理をしたいのですが、awkで二つのファイルを扱う方法 が分かりませんでした。 やりたい処理は以下のような事です。 ファイルAの1行目"AAA B"と同じ行がファイルBにあったら、ファイルAの"AAA B"の次の行に、 ファイルBの次の行"YYY bbb"を挟み込みます。 もし、ファイルBに同じ行がなかったら、 ファイルAの次の行に"NG"を挟み込みます。 [ファイルA] AAA B ZZZ B AAA C ZZZ C AAA D ZZZ D [ファイルB] AAA B YYY bbb AAA C YYY bbb [出力ファイル] AAA B YYY bbb ZZZ B AAA C YYY ccc ZZZ C AAA D NG どなたか良いスクリプトありましたら 教えていただけないでしょうか。 よろしくお願いします。
- 締切済み
- その他(OS)
- awkで行ごとの計算について
HP-UX,UNIX環境です。 あるファイルを⇒a.txtとします。 a.txtには以下のような記述だとします。(行は複数行) 20110322000000 00:00:00 PERFORMANCE all 20110322000100 00:00:00 PERFORMANCE all 20110322000200 00:00:00 PERFORMANCE all 20110322000300 00:00:00 PERFORMANCE all shでのループ処理は以下のようにしたいです。 (1)2行目の1カラム目から1行目の1カラム目を引き算、 (2)計算結果をファイルにリダイレクト (3)4行目の1カラム目から3行目の1カラム目を引き算 (4)計算結果をファイルにリダイレクト ※awkを使えば出来そうですが、やり方がわかりません。 お手数ですが、ご回答宜しくお願い致します。
- ベストアンサー
- CGI
- perlで特定行から特定行までを抜き出しor置換
perlで以下のようなことをしたいと考えています。 以下のことを、コマンドラインから「perl ~」という形で 実行したいのですが、どのよにすればよいでしょうか。 1.特定行から特定行までを抜き出し 2.特定行から特定行の範囲で文字列置換 例えば、次のようなテキストファイルがあったとします。 example.txt ================================== #START aaaa hogehoge test okok perl script #END ================================== 上記ファイルを読み込んで、 1.「#START」から「#END」の間に挟まれた行だけ抜き出し 2.「#START」から「#END」の間で、「test」を置換 のです。 sedで言うところの sed -e '/#START/,/#END/ s/YYYYMM/201603/g' test.txt をやりたいのです。
- ベストアンサー
- Perl
- エクセルで印刷中のhl2375dwが止まらない状態になりました。電源を切って再接続しても印刷が自動的に始まり、キャンセルしても止まりません。他の印刷方法でも同様の問題が起きる場合の対処法を教えてください。
- お使いの環境はWindows11とAndroidスマホで無線ルーターに接続されています。関連するソフト・アプリとしてはmobile connectとmopria print serviceを使用しています。
- j.comのスマホau回線を使用しています。この問題に関する解決策を教えてください。
お礼
回答ありがとうございます。 コマンドライン入力でできるのですね。 大変参考になりました。