패턴에 따라 파일을 별도의 Excel 셀로 분할

패턴에 따라 파일을 별도의 Excel 셀로 분할

수백 줄 길이의 큰 파일이 있습니다. 파일은 특정 구분 기호 "###"에 의해 여러 부분으로 구분됩니다. 이 줄 "###"은 여러 줄 뒤에 나타나며 매번 다를 수 있습니다. 따라서 단일 Excel 파일의 한 셀에 있으려면 "###" 앞의 내용이 필요하고 동일한 Excel 파일의 별도 셀에 있으려면 "###" 뒤의 내용이 필요합니다.여기에 이미지 설명을 입력하세요.나는 Split과 awk에 익숙하지만 내가 설명한 작업을 수행하기 위한 명령줄을 만들 수 없는 것 같습니다. 어떤 아이디어가 있습니까?

답변1

다음 내용으로 실행 가능한 스크립트 test.awk를 만듭니다.

awk '
  # { system( "echo \"" $0 "\" >&2") }
  BEGIN { R = "\"" }
  /^###/ {
    sub(/\n$/,"",R)
    print R "\""
    R = "\""
    next
  }
  {
    sub(/\n$/,"")
    gsub(/"/,"\"\"")
    R = R $0 "\n"
  }
' $@

그런 다음 실행

test.awk  longfile.txt  > longfile.csv

libreoffice Calc를 사용하여 longfile.csv를 엽니다.

긴 파일.txt:

dkdkdkdk
qsdfqlsdf
qsdfjqlsdf
######
qdfqj
qsdfmlkjqsd
qsiapriopazeiru
wqsdfqesr
######
rurururururururuur
rururururururururu
ururururururururur
######
iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii
######
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
######

긴 파일 .csv:

"dkdkdkdk
qsdfqlsdf
qsdfjqlsdf"
"qdfqj
qsdfmlkjqsd
qsiapriopazeiru
wqsdfqesr"
"rurururururururuur
rururururururururu
ururururururururur"
"iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii
iiiiiiiiiiii"
"uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu
uuuuuuuuuuu"

관련 정보