bashに関するuske_Sのブックマーク (3)

  • シェル ( /bin/sh ) での正規表現マッチ。 - それマグで!

    以前、bash の正規表現について書いた。 今回は、今更だけど、あえて、bash/zsh で使われている [[ を使わずに、正規表現を使おうとしてみた。 expr よりは bash の機能を使ったほうがいい。 以前書いた記事にある。bash/zsh の正規表現を使う方法が個人的には優れていると思う。 takuya-1st.hatenablog.jp どうしても sh じゃないとだめなんだったときは expr を使う選択肢になる。 /bin/sh の場合は expr で正規表現を扱う。 シェルの正規表現は、次のようにかける。 expr "なにか文字列" : "regex" または、次のように書く。 expr match "なにか文字列" "regex" expr は expression の略だったかとおもう。Expressionの名前の通り、文字列表現の式を評価をする。四則演算なども使いま

    シェル ( /bin/sh ) での正規表現マッチ。 - それマグで!
  • 空白を含むパス名を含むコマンド文字列をシェル(bash)で処理する - それマグで!

    " program files " のような空白を含むパス名を持ったコマンド全体を、変数に保持しててそれを実行したい時 そのままだと動かない。 ## これが実行できない。 cmd='ls ~/Library/Application\ Support/' $cmd 空白を含むパス名を入れたコマンドを文字列として、それを実行しようとするとエスケープの処理で頭を悩ますことになる。 eval を使う cmd='ls ~/Library/Application\ Support/' eval $cmd または、sh 経由にする cmd='ls ~/Library/Application\ Support/' sh -c "$cmd": 参考資料 https://stackoverflow.com/questions/836334/executing-commands-containing-space

    空白を含むパス名を含むコマンド文字列をシェル(bash)で処理する - それマグで!
    uske_S
    uske_S 2020/05/14
    evalするかshで逃げる。なるほど…
  • 【Linux】シェルスクリプトによる文字列処理:置換や削除をする方法

    Linuxではテキストデータを良く使う。それらのテキストデータに対して置換や削除などの処理をしたいことがよくあるだろう。 このページではそういった処理をシェルスクリプトで効率的に実現する方法について紹介する。 シェルスクリプトによる置換や削除 Linuxに触れていると、テキストデータを取り扱うことが多くある。設定ファイルなどはほぼテキストデータでなりたっている。また標準出力されるものをテキストデータとして保存することも容易だ。テキストデータと向き合う時間はおそらくWindowsよりも長いはずだ。 そんなLinuxに触れていると、「この文字列をこの文字列に一括で置き換えたい」「この文字列をすべて削除したい」といったオーダーに出会う。 例えばスクリプトを使って文字列を置換し、様々な設定を自動化するということも可能だろう。このページではそういった「シェルスクリプトでの文字列処理」を取り上げる。

    【Linux】シェルスクリプトによる文字列処理:置換や削除をする方法
    uske_S
    uske_S 2020/01/31
    bash置換の書式
  • 1