以下を使って作成したいと思いますsed
。
たとえば、ファイルの(すべての単語)をターゲットssss...
文字列の各単語に置き換える必要がありますgggg
。
echo "duwdbnhb ssssssmnfkejfnei" | sed s'/ssssss*/gggg/g'
duwdbnhb ggggmnfkejfnei
しなければならない:
duwdbnhb gggg
備考 - 文字列は複数のs
文字列にすることができます(例えば、ss
またはsss
... ssssss
)。
例:
echo "duwdbnhb sssmnfkejfnei" | sed s'/s*/gggg/g'
duwdbnhb gggg
例A
echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" | sed s'/ss.*/gggg/'
rf3 f34kf3ein3e gggg
ただし、次のように印刷する必要があります。
rf3 f34kf3ein3e gggg swswww gggg
例B
echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" | sed s'/s.*/gggg/'
rf3 f34kf3ein3e gggg
ただし、次のように印刷する必要があります。
rf3 f34kf3ein3e gggg gggg gggg
答え1
私が正しく理解したら、2つ以上の文字で始まるすべての単語を変更したいと思いますs
。
sed s'/ss[^[:blank:]]*/gggg/g'
答え2
あなたはできます:
sed -r 's/(^|[[:blank:]])(ss[^[:blank:]]*)/\1gggg/g' file.txt
例:
% echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" | sed -r 's/(^|[[:blank:]])(ss[^[:blank:]]*)/\1gggg/g'
rf3 f34kf3ein3e gggg swswww gggg