SED-搜索一行中的两个模式,如果发现模式匹配,则在行尾插入几个单词

SED-搜索一行中的两个模式,如果发现模式匹配,则在行尾插入几个单词,sed,Sed,我有一个文件,我想在同一行中搜索两个pttern,如果找到,应该在该行末尾插入一个单词。想在sed中做些什么 范例 我有一个文件内容如下,想搜索unix和NotOK abc unix windows DBa NotOK abc unix windows DBa OK abc oracle sybase java OK 输出应类似(匹配abc和NotOK,如果找到,请在行的末尾插入unix) 我知道它要求使用sed,但只是为了演示如何在awk awk '/abc.*NotOK/ {$0=$0

我有一个文件,我想在同一行中搜索两个pttern,如果找到,应该在该行末尾插入一个单词。想在sed中做些什么

范例

我有一个文件内容如下,想搜索unix和NotOK

abc unix windows DBa NotOK 
abc unix windows DBa OK
abc oracle sybase java OK
输出应类似(匹配abc和NotOK,如果找到,请在行的末尾插入unix)


我知道它要求使用
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

我知道它要求使用
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
在这种情况下,没有指定图案的顺序(两者都必须存在)


在这种情况下,模式的顺序没有指定(两者都必须存在)

请始终将您迄今为止尝试过的内容放在您的问题中。请始终将您迄今为止尝试过的内容放在您的问题中。非常感谢abasu,它真的很有帮助。感谢您的快速回复。非常感谢abasu,它真的很有帮助。感谢您的快速响应。我喜欢
$++NF=x
附加字段,它尊重
OFS
我喜欢
$++NF=x
附加字段,它尊重
OFS
sed "/Pattern1/ {/Pattern2/ s/$/ YourLastWork/;}" ${YourFile}