小文字で始まる現在の行に前の行を追加するには、スクリプトまたはコマンドが必要です。

小文字で始まる現在の行に前の行を追加するには、スクリプトまたはコマンドが必要です。

Excelでファイルを開く前にフォーマットする出力は次のとおりです。

1. |1.99934| BD | 1| C   1 - H   2
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|
f 0.00|  0.01%|
| 39.88%|   0.6315* H   2 s| 99.94%|p 0.00|  0.06%|
2. |1.99934| BD | 1| C   1 - H   3
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|
f 0.00|  0.01%|
| 39.88%|   0.6315* H   3 s| 99.94%|p 0.00|  0.06%|
3. |1.99934| BD | 1| C   1 - H   4
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|
f 0.00|  0.01%|
| 39.88%|   0.6315* H   4 s| 99.94%|p 0.00|  0.06%|
4. |1.99934| BD | 1| C   1 - H   5
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|
f 0.00|  0.01%|
| 39.88%|   0.6315* H   5 s| 99.94%|p 0.00|  0.06%|

出力が次のように「f」で始まる行を前の行に追加する方法が必要です。

1. |1.99934| BD | 1| C   1 - H   2
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   2 s| 99.94%|p 0.00|  0.06%|
2. |1.99934| BD | 1| C   1 - H   3
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   3 s| 99.94%|p 0.00|  0.06%|
3. |1.99934| BD | 1| C   1 - H   4
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   4 s| 99.94%|p 0.00|  0.06%|
4. |1.99934| BD | 1| C   1 - H   5
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   5 s| 99.94%|p 0.00|  0.06%|

SEDを使用してこれを実行しようとすると失敗しました!助ける! !

答え1

使用paste:

$ paste -d '\n\0\n\n' - - - - <file
1. |1.99934| BD | 1| C   1 - H   2
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   2 s| 99.94%|p 0.00|  0.06%|
2. |1.99934| BD | 1| C   1 - H   3
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   3 s| 99.94%|p 0.00|  0.06%|
3. |1.99934| BD | 1| C   1 - H   4
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   4 s| 99.94%|p 0.00|  0.06%|
4. |1.99934| BD | 1| C   1 - H   5
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   5 s| 99.94%|p 0.00|  0.06%|

4行で構成される各グループから2番目の改行文字を削除したいように見えるので、上記のコマンドはpasteまさにそれを行います。

答え2

Anはawkグループ内の行数を表し、小文字で始まります。

awk -v ORS= '{print (($0!~"^[a-z]"&&NR>1)?"\n":"")$0}END{ print "\n"}' file

ORS小文字で始まらない場合は、空白に設定して印刷します。最初の行の前に\n置かないでください。$0$0\n

出力

1. |1.99934| BD | 1| C   1 - H   2
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   2 s| 99.94%|p 0.00|  0.06%|
2. |1.99934| BD | 1| C   1 - H   3
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   3 s| 99.94%|p 0.00|  0.06%|
3. |1.99934| BD | 1| C   1 - H   4
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   4 s| 99.94%|p 0.00|  0.06%|
4. |1.99934| BD | 1| C   1 - H   5
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   5 s| 99.94%|p 0.00|  0.06%|

メモ:sedfキャプチャグループで検索を正規表現に置き換えてキャプチャされた\n([a-z])文字を再挿入すると、デフォルトでは\1コメント内の@steeldriverの応答と同じです。

もっと読みawkやすいと思います。

答え3

フロント:

printf '%s\n' g/^f/-1j wq | ex file

これは、グローバルコマンドを使用して、oinで始まるすべての行でoinを実行しますg。 Joinは単なる接続線です。-1jf

答え4

$ awk '{printf "%s%s", (/^f/ ? "" : s), $0; s=ORS} END{print ""}' file
1. |1.99934| BD | 1| C   1 - H   2
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   2 s| 99.94%|p 0.00|  0.06%|
2. |1.99934| BD | 1| C   1 - H   3
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   3 s| 99.94%|p 0.00|  0.06%|
3. |1.99934| BD | 1| C   1 - H   4
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   4 s| 99.94%|p 0.00|  0.06%|
4. |1.99934| BD | 1| C   1 - H   5
| 60.12%|   0.7754* C   1 s| 24.99%|p 3.00| 74.95%|d 0.00|  0.05%|f 0.00|  0.01%|
| 39.88%|   0.6315* H   5 s| 99.94%|p 0.00|  0.06%|

関連情報