0

シェル スクリプトを使用した自動セットアップ プログラムに sed を使用しています。最後の引用の前に単語を追加しようとしています。ルールは次のとおりです。

  • 変数のため、最初の引数には二重引用符が必要です
  • 最後の引用の前の単語は不明です
  • sed コマンドを使用したソリューションを好む

ファイル:

values="word anotherword anyword foo"

スクリプト:

#!/bin/sh
wordtoadd="bar";
sed -i "s/^values=\(*.\)\"/\1$wordtoadd\"/" filetomodify.txt;

望ましい結果:

values="word anotherword anyword foo bar"
4

2 に答える 2

1

一方通行:

sed '/^values=/s/\([^"]*\)"$/\1 '"$wordtoadd"'"/' input

で始まる行が見つかった場合values=、一連の非引用符文字 ( [^"]) に続く引用符と行末 ( "$)の最長一致を一致する and に置き換え、wordtoend引用符 ( ) も元に戻します\1 '"$wordtoadd"'"

あなたの sed 式では、を定量化する\(*.\)必要があります。また、交換の際は部品を元に戻してください。\(.*\).value=

于 2013-07-08T00:46:03.740 に答える