使用 AWK 格式化文件,因为文件太大而无法编辑

问题描述 投票:0回答:3

使用AWK格式化文件,因为文本太大打不开,编辑时编辑器崩溃。

归档

1
:23
1
:27
1:67

输出:

1:23
1:27
1:67

如何使用 AWK 进行格式化以进行像这样的输出的格式化。因为Notepad++之类的程序无法打开该文件。

linux awk command
3个回答
0
投票

如果下一行只有一个 number 后跟一个 :number 或完整的 number:number (根据给定的示例)

,则此方法有效
% awk '/^:[[:digit:]]+/{print beg$1; beg = ""}
       /^[[:digit:]]+$/{beg = $1}
       /[[:digit:]]+:[[:digit:]]+/{print}' file
1:23
1:27
1:67

0
投票

使用任何 awk:

$ awk '/:/{print p $0; p=""; next} {p=$1}' file
1:23
1:27
1:67

0
投票

我将利用 GNU

AWK
来完成此任务,让
file.txt
内容为

1
:23
1
:27
1:67

然后

awk '{ORS=/:/?"\n":"";print}' file.txt

提供输出

1:23
1:27
1:67

说明:如果输出行分隔符 (

ORS
) 包含
:
,则将其设置为换行符,否则为空行,然后是
print
行,因此所有在
:
行之前没有
:
的行并且与
:
的行将被连接起来。

(在 GNU Awk 5.1.0 中测试)

© www.soinside.com 2019 - 2024. All rights reserved.