小编Mik*_*ike的帖子

如何从重复六次以上的文件中打印行

我有一个包含下面显示的数据的文件.第一个以逗号分隔的字段可以重复任意次,并且我想在第六次重复此字段的任何值后仅打印行

例如,有八个字段1111111作为第一个字段,我想只打印这些记录的第七个和第八个

输入文件:

1111111,aaaaaaaa,14
1111111,bbbbbbbb,14
1111111,cccccccc,14
1111111,dddddddd,14
1111111,eeeeeeee,14
1111111,ffffffff,14
1111111,gggggggg,14
1111111,hhhhhhhh,14
2222222,aaaaaaaa,14
2222222,bbbbbbbb,14
2222222,cccccccc,14
2222222,dddddddd,14
2222222,eeeeeeee,14
2222222,ffffffff,14
2222222,gggggggg,14
3333333,aaaaaaaa,14
3333333,bbbbbbbb,14
3333333,cccccccc,14
3333333,dddddddd,14
3333333,eeeeeeee,14
3333333,ffffffff,14
3333333,gggggggg,14
3333333,hhhhhhhh,14
Run Code Online (Sandbox Code Playgroud)

输出:

1111111,gggggggg,14
1111111,hhhhhhhh,14
2222222,gggggggg,14
3333333,gggggggg,14
3333333,hhhhhhhh,14
Run Code Online (Sandbox Code Playgroud)

我试过的是相对于1st转换第2和第3个字段,以便我可以nawk$7或的字段上使用$8

#!/usr/bin/ksh awk -F"," '{ a[$1]; b[$1]=b[$1]","$2 c[$1]=c[$1]","$3} END{ for(i in a){ print i","b[i]","c[i]} } ' file > output.txt
Run Code Online (Sandbox Code Playgroud)

unix perl awk nawk

3
推荐指数
2
解决办法
687
查看次数

需要检查文件是否存在?

在一个文件夹里面我有一些文件

UEDP01_20120821.csv
UEDP02_20120821.csv
UEDP03_20120821.csv
UEDP04_20120821.csv
UEDP05_20120821.csv
Run Code Online (Sandbox Code Playgroud)

只想检查所有文件是否存在.如果缺少任何一个文件,则需要创建一个具有相同名称的空文件.

例如:

UEDP01_20120821.csv
UEDP02_20120821.csv
UEDP04_20120821.csv
UEDP05_20120821.csv
Run Code Online (Sandbox Code Playgroud)

UEDP03_20120821.csv如果缺少此文件,则需要创建相同的文件.

linux shell perl awk ksh

1
推荐指数
1
解决办法
143
查看次数

标签 统计

awk ×2

perl ×2

ksh ×1

linux ×1

nawk ×1

shell ×1

unix ×1