- ベストアンサー
UNIX シェルスクリプト
UNIXのシェルスクリプトを使用してテキストファイルのある列にある 特定の文字列を条件としてその行を出力するということをやりたいのですが どのようにすればできるでしょうか? 例えば,以下のようなテキストファイルがあって,2列目がYAHOOの行を 主力したいというようなことです。 AAA SOFTBANK BBB YAHOO YAHOO TEST CCC QUICK DDD YAHOO ↓ BBB YAHOO DDD YAHOO
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
awkならこうしますが、どうしてもシェルスクリプトがよいのですか? awk '$2 == "YAHOO"{print $0}' filename
その他の回答 (2)
- tachiwa
- ベストアンサー率34% (25/73)
回答No.3
テキストファイルの名前は catalog.fileとします。 次のようなシェルスクリプト(名前は grep_bashとします)を作成して実行すると検索したい文字列を聞いてくるのでYAHOOと入力するとその行が出力されます。(chmod 755 grep_bashとして実行権を与えれば ./grep_bash 又は . grep_bashで実行されます) #!/bin/bash echo -n "検索文字列を入力してください" read A1 cat catalog.file | grep $A1
質問者
補足
この方法では2列目の単語がという条件がクリアされないように思うのですが..
- LunaSun
- ベストアンサー率30% (4/13)
回答No.2
他に条件がなければgrepで可能。 grep ' YAHOO$' ファイル名 たぶん
質問者
お礼
確かに,質問のケースではO.K.でした。ただ,汎用性という面では NO.1の方の回答のほうが上みたいです。ありがとうございました。
補足
特に方法はこだわらなかったのですが,awkスクリプトを使用すれば簡単にできることはわかっていたのですが,シェルスクリプトでも簡単に実現する方法があればと思い質問しました。でも,投稿していただいた方法 を使用すればシェルスクリプトで実現できそうですね。まだ,これ以外にも方法があったりするのでしょうか?