テキストファイル内の各行の末尾の末尾のスペースを無視し、行が数字で終わらない場合は、その行と次の行の間に改行があると仮定して、これらの改行を探したいと思います。次にそれを1行にリンクします。例えば
line 1
li
ne 2
2行目と3行目の間に改行文字があります。ファイルを次のように変更する必要があります。
line 1
line 2
これらの改行文字を見つけるには、複数行の一致を実行する必要があります。レコード区切り文字を変更してこれを実行しましたが、以下は機能しません。
$ awk 'BEGIN{RS="";}; { if (match($0, /[^[:digit:] ] *\n/)) print $0;} ' inputfile
改行で区切られた2行を接続するにはまだ疑問に思っています。
ありがとうございます。
ベストアンサー1
私は別の方法で問題を解決します:「行末の条件」が見つかるまで入力を繰り返します。
awk '{
line=$0;
while($0 !~ /[[:digit:]] *$/ && getline > 0) {
line=line$0;
}
print line
}' < input
拡張入力ファイルから:
line 1
li
ne 2
li
ne
number 3
line 4
またはさらに詳しく説明すると、次のようになります(末尾の空白の確認)。
$ cat -e input
line 1$
li$
ne 2$
li$
ne $
number 3$
line 4$
出力は次のとおりです
line 1
line 2
line number 3
line 4