dポイントプレゼントキャンペーン実施中!

シェルでgrepは、特定文字列を含む行を抜き出すときに使いますよね。

特定の文字列を含むフィールドを取り出すときはどうしますか。
(grepでなくていいです)

たとえば、

abc def ghi klm nop

という文字列に対して、
「d」を含むフィールドを取り出す
をしたいです。

STR=`echo "abc def ghi klm nop" | XXX `

としたときに、${STR}に def が入るような「XXX」のコマンドは
ありますか。

シェルでは、あまり見かけない方法なので、難易度高いかもしれませんが、
よろしくお願いいたします。

A 回答 (4件)

echo "abc def ghi klm nop" | tr ' ' '\n' | grep d | head -n 1

    • good
    • 0

>何フィールド目か、わかっている場合の



ああ、確かに。
そこ抜けてた。

No.2さんの方法で、sedの代わりにtrコマンドでも行けるかもですね。
    • good
    • 0

echo "abc def ghi klm nop" | sed -e 's/[ ]/\n/g' | grep d | head

    • good
    • 0
この回答へのお礼

完璧な回答、ありがとうございます。

無事にできました。

お礼日時:2017/06/18 11:14

cutですかね?


awkで取り出すこともありますけど。
    • good
    • 0
この回答へのお礼

awk をうまく使えば出来そうだなと思って調べたのですが、
何フィールド目か、わかっている場合の処理の説明しか
見当たらなかったんです。

お礼日時:2017/06/18 11:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!