2016-06-08 4 views
0

파일 iptables_manager.py가 있고 특정 행 다음에 행을 삽입한다고 가정하십시오.bash를 사용하여 특정 행 다음에 새 행 삽입

입력 :

 tables['filter'].add_chain('local') 
     tables['filter'].add_rule('neutron-filter-top', '-j $local', 
            wrap=False) 
    builtin_chains = {4: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']}, 
         6: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']}} 

출력 :

 tables['filter'].add_chain('local') 
     tables['filter'].add_rule('neutron-filter-top', '-j $local', 
            wrap=False) 
     tables['filter'].add_rule('FORWARD', '-p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360', 
            wrap=False, top=True) 
    builtin_chains = {4: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']}, 
         6: {'filter': ['INPUT', 'OUTPUT', 'FORWARD']}} 

이 사용 bash는 스크립트를 달성 할 수있는 간단한 방법이 있을까요?

미리 도움을 주셔서 감사합니다. 당신이 파일을 읽을 것이다 나오지 r EAD를 사용할 수 있습니다 wrap=False 후 다중 라인을 삽입 할 구체적인 사례를 들어

+0

확실히이 답변을 살펴보십시오. http://stackoverflow.com/questions/15559359/insert-line-after-first-match-using-sed qoutation marks를 벗어나십시오. – dood

답변

0

일치하는 행 다음에 (포함) :

sed '/wrap=False/r new_lines.txt' input.txt > output.txt 

대체 당신이 a을 사용할 수 있습니다 일치하는 행 다음에 지정된 텍스트를 삽입합니다 따고 명령 : 당신이 a 따고 명령을 볼 수

sed '/wrap=False/a \  tables['\''filter'\''].add_rule('\''FORWARD'\'', '\''-p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1360'\'',\n         wrap=False, top=True)\n' input.txt > output.txt 

가 모두 동일한 작업을 수행해야하지만,이 찾고 아주 못생긴 될 수 있습니다 지.