行が次から始まる場合にのみ、"www.yahoo.com"文字列を削除したいと思います。[でホスト名の場所を指定します。そして]また、文字列の後にカンマ(、)が続く場合は、そのコンマも削除する必要があります。
assign where host.name in [ "www.google.com","www.yahoo.com","www.facebook.com" ]
私の出力は次のようになります
assign where host.name in [ "www.google.com", "www.facebook.com" ]
私はこれを達成する方法がわからない。このコードに関するいくつかのアイデアを教えてください。
答え1
これらの問題は通常、sed、awk、またはPerlを使用して処理されます。標準的なsedソリューションは次のとおりです。
sed '/^assign where host.name in \[.*\]$/s/"www.yahoo.com",//'
あなたの言葉は変です。人々は通常言わない
私はペットcaを持っていて、その後ろにtがあります。
彼らは言った
ペット猫を育てています。
同様に、代わりに
文字列
"www.yahoo.com"
...文字列の後にカンマ(,
)が続く場合
あなたは言わなければなりません
文字列
"www.yahoo.com",
たぶんもっと複雑なことを意味しない限り
文字列
"www.yahoo.com"
...文字列の後にカンマ(,
)が続くと、オプションでスペースで区切られます。
この状況ではこう言うべきです。
上記のコマンドはあなたの質問に合った作業を行います。つまり、文字列を削除します"www.yahoo.com",
。やりたいことをしたいなら見せる、コメントに記載されている内容に加えてスペースを追加してください。
sed '/^assign where host.name in \[.*\]$/s/"www.yahoo.com",/ /'