linuxwenwen

【awk】使用awk和sed操作文本

2025-01-02  本文已影响0人  Bogon

以英文逗号 , 分割,如何用 awk实现以英文逗号分割,如果第4列值为空则不输出这行,如果不为空就输出该行?

可以使用 awk 来处理 txt文件,根据第四列是否为空来筛选行。
下面是一个用 awk 实现的命令,它会检查第四列,如果不为空就输出该行。

awk -F',' '$4 != ""' file.txt

解释:

file.txt 文本内容如下:
66facdcee4b0faa9da039e39
67061585e4b0f53e913f188f

如何用 sed 或者 awk 实现 输出文本为:
ABC@66facdcee4b0faa9da039e39
ABC@67061585e4b0f53e913f188f

你可以使用 sedawk 来实现你想要的输出格式。具体方法如下:

使用 sed

sed 's/^/ABC@/' file.txt

解释:

使用 awk

awk '{print "ABC@" $1}' file.txt

解释:

示例输出:

ABC@66facdcee4b0faa9da039e39
ABC@67061585e4b0f53e913f188f

这两种方法都可以实现你想要的结果。根据你的需求,选择使用 sedawk 都可以。

file.txt 文本内容如下:
ABC@66facdcee4b0faa9da039e39
ABC@67061585e4b0f53e913f188f

如何给每行行首和行尾 加上 英文 " 符号?

你可以使用 sedawk 来给每行的行首和行尾加上英文双引号 "

使用 sed

sed 's/^/"/;s/$/"/' file.txt

解释:

使用 awk

awk '{print "\"" $0 "\""}' file.txt

解释:

示例输出:

"ABC@66facdcee4b0faa9da039e39"
"ABC@67061585e4b0f53e913f188f"

file.txt中有多行文本,每行内容以英文逗号 , 分隔,如何实现第4列和第5列相同,则输出该行?

你可以使用 awk 来处理这个问题,检查第4列和第5列的值是否相同,如果相同则输出该行。

假设你有一个名为 file.txt 的文件,格式如下(每行内容以英文逗号 , 分隔):

使用 awk

awk -F',' '$4 == $5' file.txt

解释:

示例:
假设 file.txt 的内容如下:

apple,banana,orange,123,123
cat,dog,mouse,456,789
red,blue,green,789,789

那么执行上述 awk 命令后,输出将会是:

apple,banana,orange,123,123
red,blue,green,789,789

这两行符合条件:第4列和第5列的值相同。

上一篇 下一篇

猜你喜欢

热点阅读