2016-04-04 12 views
1

を使用して交換してください。私はファイルの行の先頭にある文字列のシーケンスを置き換えようとしています。例えば、私が「N」または「R」と「WR」とパターン「GN」のいずれかのインスタンスを交換したいのですが、彼らはその行の最初の2つの文字がある場合のみ。私は、次の内容のファイルを持っている場合たとえば、:条件は、私の質問は、おそらくかなり単純であるSED

WRONG 
RIGHT 
GNOME 

を私は私が上記のいずれかのインスタンスを置き換えるために、次を使用することができます知っている

RONG 
RIGHT 
NOME 

を与えるために、このファイルを変換したいです例。

sed -i 's/GN/N/g' file.txt 
sed -i 's/WR/R/g' file.txt 

問題は、私は上記のパターンは、任意の行の最初の2つの文字がある場合にのみ、この現象が発生したいということです。おそらくIF文ですが、私はどのような状態になるかわかりません。正しい方向のポインタは、ありがとう、ありがとう。

答えて

1

開始の文字列の正規表現のアンカー^使用します。sedをので

sed -i 's/^GN/N/' file.txt 
sed -i 's/^WR/R/' file.txt 

が行指向で、START-OF-文字列==行頭。

+1

うん、それはそれと同じくらい簡単でした。どうもありがとう。 – tasslebear

2

ちょうど(あなたは最大1つの交換をしたいために、不必要な)Gサフィックスを削除し、曲折を追加し、あなたもひとつのスクリプトでそれらを組み合わせることができます。

sed -i 's/^GN/N/;s/^WR/R/' file.txt 
+0

あなたは@karakfaに出会った。私はそれが2分前に来たとして、以下にエドの答えを受け入れる必要があったが、答えるために時間を割いていただきまして誠にありがとうございます。 – tasslebear

関連する問題