使用AWK格式化文件,因为文本太大打不开,编辑时编辑器崩溃。
归档
1
:23
1
:27
1:67
输出:
1:23
1:27
1:67
如何使用 AWK 进行格式化以进行像这样的输出的格式化。因为Notepad++之类的程序无法打开该文件。
如果下一行只有一个 number 后跟一个 :number 或完整的 number:number (根据给定的示例)
,则此方法有效% awk '/^:[[:digit:]]+/{print beg$1; beg = ""}
/^[[:digit:]]+$/{beg = $1}
/[[:digit:]]+:[[:digit:]]+/{print}' file
1:23
1:27
1:67
使用任何 awk:
$ awk '/:/{print p $0; p=""; next} {p=$1}' file
1:23
1:27
1:67
我将利用 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 中测试)