GNU/Linux >> Linux の 問題 >  >> Linux

文字列内のパターンを見つけるためのシェルテスト?

一般的なシェル(bash、dash、kornshell)で機能するコマンドがあるかどうかを尋ねたかっただけです。 lineかどうかをチェックすることになっています 変数にはパスの任意の部分が含まれます。

if [[ $line =~ "$PWD"$ ]] ;then

承認された回答:

はい、bashの最近のバージョンはこれを行うことができます:

$ pwd
/home/terdon
$ line="I'm in /home/terdon"
$ [[ "$line" =~ "$PWD"$ ]] && echo yes
yes

同じ構文がzshとkshで機能しますが、ダッシュでは機能しません。私の知る限り、ダッシュにはそのような機能はありません。

正規表現が変数$lineかどうかをチェックしていることに注意してください 終了 $PWDを使用 。 $PWDかどうかを確認するには $lineのどこにでも一致します 、$を削除します :

$ line="I'm in /home/terdon, are you?"
$ [[ "$line" =~ "$PWD" ]] && echo yes
yes

Linux
  1. 複数行の文字列の最後の行に指定されたパターンが含まれているかどうかのシェルテスト?

  2. 検索から文字列を返す{}を操作します-exec?

  3. Linux のシェル出力を HTML に変換するには?

  1. Linuxで-execシェル関数を見つけますか?

  2. パターンに一致する最新のファイルを見つけるための Bash 関数

  3. シェルスクリプトでの検索と置換

  1. adb:adb シェルから PID を見つける

  2. 検索コマンドの '{}' と {} の違いは?

  3. bash - 部分文字列の文字列インデックス位置を見つける