現在、単純なテキストファイルを解析するためのbashスクリプトを作成しています。今私が経験している問題は、あってはならない新しい行が現れるということです。たとえば、
Q1bcd 3 - 4 --- --- --- Ba Klasse hat Aufgab..
8 a 3 --- --- Mr
6 b 3 - 4 --- --- --- Bu Unterricht im
Klassenverband
8 a 4 --- --- Ke
7 a 4 De Bi r24 La
「Klassenverband」文字列が新しい行にあります。私はこれをしたくありません。新しい行文字を削除するには、sedとawkを使用して別のコマンドを実行してみました。
awk '/^\([a-zA-Z]\{4\}\)/{printf "%s ",$0;next} 1' file
sed '/^\([a-zA-Z]\{4\}\)/{N;s/\n//;}' file
今まで私が考えたことは、次の正規表現を使用して必要なすべての文字列を抽出できることです。
^\([a-zA-Z]\{4\}\)
私はこの結果を期待しています
Q1bcd 3 - 4 --- --- --- Ba Klasse hat Aufgab..
8 a 3 --- --- Mr
6 b 3 - 4 --- --- --- Bu Unterricht im Klassenverband
8 a 4 --- --- Ke
7 a 4 De Bi r24 La
編集する: これは私にとって効果的です。ただし、テキストファイルはDOSファイルではなくUnixテキストファイルである必要があります。
sed '$!N; s/\n\([[:alpha:]]\{4,\}\)/ \1/; P;D' file
ベストアンサー1
どうですか?
sed '$!N; s/\n\([[:alpha:]]\{4,\}\)/ \1/; P;D' file
Q1bcd 3 - 4 --- --- --- Ba Klasse hat Aufgab..
8 a 3 --- --- Mr
6 b 3 - 4 --- --- --- Bu Unterricht im Klassenverband
8 a 4 --- --- Ke
7 a 4 De Bi r24 La