パターンに従ってファイルを別々のExcelセルに分割する

パターンに従ってファイルを別々のExcelセルに分割する

数百行の長さの大きなファイルがあります。ファイルは、特定の区切り文字「###」によって複数の部分に分けられます。この行「###」は複数行の後に表示され、毎回異なる場合があります。したがって、単一のExcelファイルの1つのセルにある場合は「###」の前の内容が必要で、同じ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"

おすすめ記事