Excel(エクセル)PowerPoint(パワーポイント)ゲームプランニングSpriteStudioマスターデータ入力/作成Unityキャラクターデザインゲームシナリオレベルデザインゲーム分析3DCGイラスト制作CG/アニメーションホームWeb開発Unixのあれこれ要素検索してパラメータを取得するsed2018-03-23カテゴリ:Unixのあれこれタグ:初心者ShellScriptsed要素検索してパラメータを取得するsedこの記事は公開から1年以上が経過しています。情報が古い可能性がありますのでご注意ください。findも最後に組み合わせます。はじめに前回の記事からパラメータ加工について調べてみたり、いじってみたり。※利用しているOSによってはバックスラッシュをつける文字があります。sedで取り出し正規表現で抽出して置換したり削除したりできます。"s/^.*>\([^<>]+\)<.*$/\1/g"いずれも結果は30s/{検索する正規表現}/{置換後}/{gをつけると検索対象全てに反映}1つ目はタグ部分を削除する書き方です。該当行を抽出し、その行についてタグ部分を削除(値なしへ置換)しています。すると、その行自体が削除されてしまい、抽出されません。挟まれていることを利用した書き方です。grepで検索したパラメータを置換条件に含めます。括られたマッチ部分を返します。(詳しくは正規表現について調べてみてください。除外しているため、置換後の値にタグは入ってきません。's/^.*<page>\(.*\)<\/page>.*$/\1/g'となります。)もしていますが、これは前後の不要な部分も置換しなければそのまま残ってしまうためです。つけない場合は以下のようになります。DoRuby?</pageTitle><page>タグのみ削除され、残りはそのまま残ってしまいました。複数ファイル指定をする場合は、他のファイルにあらかじめまとめておくか、シェルの配列を用意すると言った方法があります。左側のコマンド処理の結果を引数として受け取ります。利用したファイル名取得にもそのまま応用できます。なっているため、変更していない場合は配列型が利用できませんので実行に注意してください。(実行権限が付与されている場合はシェルスクリプト名で実行できます。)おわりにsedで簡単な置換は作ったことがありますが、そもそも正規表現使えるよねってことで、ちょっとだけ複雑な探索と置換を紹介しました。マッチした場所以外は出てこないようなコマンドがあればいいのですが、あることに気づいていないだけかもしれませんね。(そもそもこういう使い方を想定しているのか、という話ですが)awkだと区切り文字の指定なのですよね...その代わりに制御しやすいのではという印象を受けました。viewsTweetこの記事を書いた人knagatawebエンジニア。「いいね!」するとDoRubyの最新記事を受け取ることができます。