linux 格式化文件使用awk因为文件太大编辑

im9ewurl  于 2023-06-21  发布在  Linux
关注(0)|答案(3)|浏览(147)

格式化文件使用awk,因为文本非常大,打开和崩溃时编辑。
文件a

1
:23
1
:27
1:67

输出

1:23
1:27
1:67

有人可以帮助我格式化使用awk格式像这样的输出。因为像notepad++和其他程序不能打开文件

gg58donl

gg58donl1#

如果下一行只有一个number后面跟着一个**:number**,或者是一个完整的number:number(根据给定的示例),则可以使用此方法

% awk '/^:[[:digit:]]+/{print beg$1; beg = ""}
       /^[[:digit:]]+$/{beg = $1}
       /[[:digit:]]+:[[:digit:]]+/{print}' file
1:23
1:27
1:67
w51jfk4q

w51jfk4q2#

使用任何awk:

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

moiiocjp3#

我将利用GNU AWK来完成这项任务,如下所示,让file.txt内容

1
:23
1
:27
1:67

然后

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

给出输出

1:23
1:27
1:67

说明:我将output-row-separator(ORS)设置为newline,如果它包含:,否则为空行,则为print line,因此所有在line with :和line with :之前没有:的行将被连接起来。

  • (在GNU Awk 5.1.0中测试)*

相关问题