2013-10-31 1 views
0

파일이 있고 같은 줄에 두 개의 파일을 검색하고 싶다면 한 단어를에 삽입해야합니다 라인의 끝. sed에서하고 싶다. 나는 다음과 같은 파일 내용이SED - 한 줄에 두 개의 패턴을 검색하고 패턴 일치가 발견되면 줄 끝에 몇 단어를 삽입하십시오.

는 유닉스와 NotOK

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

출력 (처럼 일치 ABC와 NotOK 발견 경우의 끝에서 유닉스를 삽입해야 검색 할

예 선)

abc unix windows DBa NotOK "unix" 
abc unix windows DBa OK 
abc oracle sybase java OK 
내가 아는
+1

질문에 항상 지금까지 시도한 것을 넣으십시오. – abasu

답변

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 
+0

대단히 abasu, 그 유익한 도움을 주셔서 감사합니다. 빠른 응답을 제공합니다. –

1

sed을 요구하지만, 얼마나 수행하는 보여 ABC와 NotOK의 순서가 다를 수 있습니다 경우 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 

에, 당신이이 경우에

awk '/abc/ && /NotOK/ {$0=$0 "\"unix\""}1' log 
+0

필자는 필드를 추가하기 위해'$ ++ NF = x'를 좋아합니다. 그것은'OFS'를 따릅니다. – jthill

1
sed "/Pattern1/ {/Pattern2/ s/$/ YourLastWork/;}" ${YourFile} 

을 할 수있는, 패턴의 순서는 (모두 존재해야합니다)

를 지정하지 않는
관련 문제