お世話になります。 bash について知識のある方ご助力お願いいたします。 OS :Raspberry Pi OS bullseye 32bit 開発:bash
お世話になります。 bash について知識のある方ご助力お願いいたします。 OS :Raspberry Pi OS bullseye 32bit 開発:bash 上記環境で、以下のような命令で文字列を取得しようとしています name=`awk -v str="$ln" -v head="$iHeadName" -v term="$iTermName" 'BEGIN{print substr(str,head,term-head)}'` 1行のテキストがあり、その中に"["と"]"で囲まれた文字列があります。 これを切り出しnameに代入したい、というのがやりたいことです。 iHeadNameおよびiTermNameはそれぞれln内にある"["と"]"の位置を特定済みの状態です。 問題: 切り出した文字列の中に半角スペースがあると、その場所までしかnameに代入されない (例) "[USB Camera]" の場合 "USB" の文字列しか得られない 当方パソコン初心者ではないもののlinux初心者のため、そもそも上記命令の書式について細かいところが理解できていません。 解決策をご教授いただけたらとおもいます。 どうぞよろしくお願いいたします。
Linux系・76閲覧
ベストアンサー
良く分からないが、単に"[と]"の間を抜き出したのなら、区切り文字をそれにすれば良いんじゃ? $ echo '"[USB Camera]"' | awk -F '"\[|\]"' '{print $2}' USB Camera
質問者からのお礼コメント
素早くシンプルな回答、ありがとうございました。 デリミタが複数指定できたのですね。とてもためになりました。
お礼日時:1/14 23:58