0

私はbashで書くのは初めてで、この長いスクリプトを完成させたばかりですが、単項演算子で始まるすべての変数に引用符を追加しないという間違いを犯しました$. すべての引用符を手動で追加するには、しばらく時間がかかります。$で始まるテキスト ファイル内のすべての単語を引用符で囲むように使用できるショートカットはありますか? したがって、ファイル内の行が次のようになっている場合:

python myProgram.py $car1 $car2 $speed1 $speed2

次に、ショートカットの後に次のように表示されます

python myProgram.py "$car1" "$car2" "$speed1" "$speed2"

nanoを使ってスクリプトを書いています。

4

2 に答える 2

3

グローバル検索を使用して、式に置き換えます(\$\w+)

  1. で検索置換モードに切り替えますC-\
  2. で正規表現モードに切り替えますAlt-R
  3. 式を入力します(\$\w+)。Enterキーを押します。
  4. 置換式を入力して"\1"、キャプチャされた式を引用符で置き換えます。Enterキーを押します。
  5. 試合でAはオールヒット。
于 2014-07-27T20:07:37.863 に答える
0

あなたの必要性を考えると、そのエディターに基づいたソリューションを提供することは必須ではないようです。シェルにアクセスできる場合は、次の簡単なsedコマンドを試すことができます。

sed -i.bak -r 's/\$\w+/"&"/g' my-script.sh

これは完璧とは言えませんが、特定のケースではうまくいくはずです。上記のコマンドの場合:

  • -i.bak「その場で」置換を実行します-つまり、元のファイルを変更し、.bak拡張子を付けてバックアップを作成します
  • s/..../..../gpatternsedを使用して検索および置換する通常のコマンドです。検索パターンは最初の 2 つの間にあります。置換は最後の 2 つの間にあります\/
  • \$\w+このパターン$は、a の後に 1 つ以上の文字 ( ) が続くことに対応し\w+ます。その文字は通常、検索パターンで特別な意味を持つため、前にバックスラッシュが必要です。$
  • "&"置換文字列です。そこでは&、検索パターンで見つかった文字列に置き換えられます。大まかに言えば、検索パターンに一致する文字列を引用符で囲みます。
于 2014-07-27T20:06:55.853 に答える