行全体を削除せずに、ファイルの1行から単語を削除します。

行全体を削除せずに、ファイルの1行から単語を削除します。

行が次から始まる場合にのみ、"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",/ /'

おすすめ記事