最近在复习自己的linux笔记,看到cut和sort的时候突然想起一直遗忘做的一件事:给某文本文件去重。发现用这两条指令的组合可以很轻松的完成自己想做的工作。
要处理的原文本文件一条数据的格式是:str1 # str2 #str3,每行一条这种格式的数据。我需要的只是str2去重后的数据,所以可以这么干
cut -d '#' -f2 YOUR_TARGET_FILE >new
cut是对文本数据进行切割,-d参数指定分割符,因为原文件是用#来隔开的,所以-d后面使用#,-f2是指定分割后的第二列数据,这里也就是str2,然后结果重定向到new文件中
接下来是对new中的数据去重,可以使用sort,sort本来是排序,加上-u就是去掉重复数据。
sort -u new > final
数据去重后重定向到final文件,这样全部工作就完成了,无比的轻松快捷,当然其实也可以直接这么写:cut -d '#' -f2 YOUR_TARGET_FILE | sort -u >final
再次感觉到linux真是一个灰常适合工作的平台。