针对数据文件截取第几个字段,并返回去重后的数据

在工作中有时会遇到这样的场景:我们从其他地方获取到数据文件,这个数据文件很多情况下是按照一定的格式,比如这里每行是一条记录,每条记录中的包含多个字段,每个字段之间以某个特定字符进行分割。这种数据文件最典型的应该就是csv文件了。

针对这样的文件,往往会有这样的需求,想从中取出某个字段,甚至对这个字段进行去重等操作。

我们该怎么办呢?这里简单说明一下,也给自己做个记录,记性不好的人再不动手那就永远都别想记住了。

比方这里的文件名为test.txt,这个文件中每行是一条记录,每条记录格式如下:

173****8296_安徽_合肥_电信

记录中有四个字段,以下划线“_”进行连接,这四个字段分别为这个号码对应的归属地省份、城市和对应的运营商。

我们这时候想把前面的号码给提取出来,怎么办呢?

cat test.txt | awk -F '_' '{print $1}' >> caller.txt

通过上面的命令我们就可以将第一列的字段值全部导出到caller.txt文件中了。这时候如果你还想去重,那么使用下面的命令就可以了:

sort caller.txt | uniq >> caller_unique.txt


猜你喜欢

转载自blog.csdn.net/andamajing/article/details/80316156
今日推荐