2013-10-21 3 views
0

안녕하세요 awk를 사용하는 데 문제가 있습니다. info.txt와 final.txt 파일 두 개가 있습니다. info.txt에는 고유 한 번호가 없으며 final.txt에는 이름 주소가 있습니다. 전화 번호 이메일은 두 번째 이름 주소를 전달합니다.단어를 여러 줄의 문자열이 들어있는 txt 파일의 내용으로 바꿉니다.

"pass"라는 단어를 final.txt에서 발생한 내용을 info.txt의 내용으로 바꾸고 싶습니다. 지금 당장 이것을 사용하고 있습니다.

awk -v f="info" 'BEGIN {while (getline < f) txt=txt $0 "\n"} /pass/ {sub("pass", txt)} 1' final.txt.tmp > final.txt.tmp 

는 지금 단어가 "통과"때마다이하는 일이 난 그냥 단어를 대체 할 콘텐츠와 함께 전체 라인을 relace 라인에서 발생한다.

감사이 당신을 위해 작동 할 수

+0

탄원에 대해 실행되는 info.txt에서 나오지도 스크립트를 생성

sed ':a;$!{N;ba};s/\n/\\n/g;s|.*|s/pass/&/g|' info.txt | sed -f - final.txt 

예를 게시하는 방법을 출력과 같습니다. – Jotne

+0

info : info.txt와 final.txt.tmp (입력 파일)와 final.txt의 파일 이름이 엉망인 것 같습니다. 수정 된 파일 이름으로 작동합니다. 또한, 당신은 gsub을 원하는 것처럼 들리지만, sub는 아닙니다. – hemflit

+0

감사합니다. 내 질문에 대한 첫 번째 파일 info.txt (고유 한 no 포함)와 다른 final.txt (여러 단어를 포함하고있는 일부 단어는 info.txt의 고유 한 no로 대체해야 함)를 다시 설명하겠습니다. 예제 info.txt는 123이고 final.txt는 http : // localhost? u = pass : p = pass이고 "pass"는 "info.txt"파일의 내용으로 대체해야합니다. – user2901827

답변

0

(GNU가 나오지도) : 이것은 다음 final.txt

+0

didnt work sed : unterminated { sed : '-'을 열 수 없습니다. 해당 파일 또는 디렉토리가 없습니다. – user2901827

+0

그 첫 번째 파일 인 info.txt (고유 한 번호 포함)와 다른 final.txt (여러 단어가 포함 된 여러 단어 포함)를 찾으려고합니다. info.txt에서 고유 한 no로 대체 됨). 예 info.txt는 123이고 final.txt는 localhost를 가지고 있습니까? u = pass : p = pass, "pass"가 "info.txt"파일의 내용으로 바뀝니다. – user2901827

관련 문제