bash変数は、文字列操作を使用して最初の文字を[]の文字に置き換えます。

bash変数は、文字列操作を使用して最初の文字を[]の文字に置き換えます。

私が持っているとしましょう:

variable=string

では、最初の文字の括弧を変更したい

${variable/firstletter/[firstletter]}

最後に、スクリプトでこれを使用して、正規表現パターンが独自に一致しないように修正したいと思います。

ps -e -o time,user,pid,ppid,comm,args | grep ${variable/firstletter/[firstletter]}

grep -v grep追加のパイプおよび/または代わりにこれを使用したいと思います。pgrep

また、awkコマンド自体を印刷するのではなく、awkを使用してgrepなどのプロセスを実装する方法を知っていますか?

ベストアンサー1

引数の最初の文字を取得して括弧で囲んでから、残りを再度追加します。

bash-[508]$ variable=string
bash-[509]$ echo $variable
string
bash-[510]$ echo $variable to [${variable:0:1}]${variable:1}
string to [s]tring

したがって、コマンドは次のようになります。

ps -e -i time,user,pid,ppid,comm,args | grep "[${variable:0:1}]${variable:1}"

これは、変数の文字範囲に対してbashパラメータ置換を使用して開始する場所とインポート期間を提供します。

${variable:0:1}、文字0(文字列の先頭)から始めて1文字を取得します。したがって、最初の文字を分離するとv

${variable:1}、範囲を定義せずに文字1から始まり、$variableの終わりまですべてを取得しますariable

おすすめ記事