0

ファイルがあり、同じ行で 2 つのパターンを検索したいのですが、見つかった場合は行末に 1 つの単語を挿入する必要があります。sed でやり​​たい。

以下のようなファイルの内容があり、unix と NotOK を検索したい

abc unix windows DBa NotOK 
abc unix windows DBa OK
abc oracle sybase java OK

出力は次のようになります (abc と NotOK に一致し、見つかった場合は行末に unix を挿入します)

abc unix windows DBa NotOK "unix"
abc unix windows DBa OK
abc oracle sybase java OK
4

3 に答える 3

2
[[bash_prompt$]]$ cat log
abc unix windows DBa NotOK
abc unix windows DBa OK
abc oracle sybase java OK
[[bash_prompt$]]$ sed -e 's/^.*unix.*NotOK.*$/& "unix"/g' log
abc unix windows DBa NotOK  "unix"
abc unix windows DBa OK
abc oracle sybase java OK
于 2013-10-31T06:52:04.470 に答える
1

私はそれが求められていることを知ってsedいますが、それを行う方法を示すだけですawk

awk '/abc.*NotOK/ {$0=$0 "\"unix\""}1' log
abc unix windows DBa NotOK "unix"
abc unix windows DBa OK
abc oracle sybase java OK

abcとNotOKの順序が異なる場合は、次のことができます

awk '/abc/ && /NotOK/ {$0=$0 "\"unix\""}1' log
于 2013-10-31T07:13:51.433 に答える