awk/python의 많은 파일과 하나의 파일로 코드를 분리 할 수 ​​없습니다.

StackOverflow https://stackoverflow.com/questions/632958

  •  08-07-2019
  •  | 
  •  

문제

하나의 파일에 다른 코드를 많은 파일에 넣어야합니다. 이 파일은 홈페이지에서 Awk의 제작자가 공유합니다. 파일도 있습니다 여기 쉽게 사용하기 위해.

문제에 대한 나의 시도

각 코드를 찾는 줄을 얻을 수 있습니다.

awk '{ print $1 }'

그러나 나는 방법을 모른다

  1. 정확한 줄 번호를 얻으려면 사용할 수 있도록
  2. 각 줄의 첫 번째 단어가 무시되도록 특정 줄 사이에 코드를 수집하려면
  3. 이 별도의 코드를 라인의 첫 번째 단어로 명명 한 새 파일에 넣으려면

나는 AWK와 Python으로 문제를 해결할 수 있다고 확신합니다. 아마도 우리는 그것들을 함께 사용해야합니다.

편집하다 첫 번째 답변 후

awk로 실행하려고 할 때 다음 오류가 발생합니다.

$awk awkcode.txt 
awk: syntax error at source line 1
 context is
     >>> awkcode <<< .txt
awk: bailing out at source line 1
도움이 되었습니까?

해결책

당신은 다음을 시도 했습니까 :

  1. 다음 내용으로 파일 Unbundle.awk를 만듭니다.

$ 1! = prev {Close (prev); prev = $ 1} {print substr ($ 0, index ($ 0, ") + 1)> $ 1}

  1. 다음 줄 제거 파일 awkcode.txt를 형성합니다.

    # Unbundle- 번들을 별도의 파일로 포장 풀립니다

$ 1! = prev {Close (prev); prev = $ 1} {print substr ($ 0, index ($ 0, ") + 1)> $ 1}

  1. 다음 명령을 실행하십시오.

awk -f Unbundle.awk awkcode.txt

다른 팁

해당 형식의 파일을 풀려고합니까? 일종의 쉘 아카이브입니다. 자세한 내용은 참조하십시오 http://en.wikipedia.org/wiki/shar

AWK로 해당 프로그램을 실행하면 AWK가 모든 파일을 생성합니다. 많이 쓰거나 다시 작성할 필요가 없습니다. 당신은 단순히 그 awk 프로그램을 실행할 수 있지만 여전히 작동해야합니다.

먼저 파일을 "일반"형식으로 봅니다. http://dpaste.com/12282/plain/

둘째, 파일의 일반 버전을 'awkcode.shar'로 저장

셋째, 다음 명령을 사용해야한다고 생각합니다.

awk -f awkcode.shar

파이썬 프로그램으로 교체하려면 이와 같은 것입니다.

import urllib2, sys

data= urllib2.urlopen( "http://dpaste.com/12282/plain/" )
currName, currFile = None, sys.stdout
for line in data:
    fileName, _, text= line.strip().partition(' ')
    if fileName == currName:
        currFile.write(line+"\n")
    else:
        if currFile is not None:
            currFile.close()
        currName= fileName
        currFile= open( currName, "w" )
if currFile is not None:
    currFile.close()

awk 파일 awkcode.txt에는 빈 줄이 포함되어 있지 않아야합니다. 빈 줄이 발생하면 AWK 프로그램이 실패합니다. 코드에서 빈 줄을 걸러내는 오류 확인이 없습니다. 이것은 며칠 동안의 투쟁 후에 알 수있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top