Linux shell awk怎么去除行内,重复列?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux shell awk怎么去除行内,重复列?相关的知识,希望对你有一定的参考价值。
===关键词.txt===
芒硝-化工生产,硫化钠-化工生产
建筑史-研究-中国-近代-文集,建筑物-保护-中国-近代-文集
高等学校-课程改革-湖北省-文集,高等学校-课程建设-湖北省-文集
利用shell的相关命令,可以用awk,按照“-”“,”“ ”分隔一行关键词,去除行内重复关键词,得到
===去除重复后.txt===
芒硝,硫化钠,化工生产
建筑史,研究,中国,近代,文集,建筑物,保护
高等学校,课程改革,湖北省,文集,课程建设
提示:行内关键词顺序,不重要
谢谢。
以此例测试通过。
关于awk二维数组的使用:
awk的多维数组在本质上是一维数组,更确切一点,awk在存储上并不支持多维数组。awk提供了逻辑上模拟二维数组的访问方式。例如,array[2,4] = 1这样的访问是允许的。awk使用一个特殊的字符串SUBSEP (\\034)作为分割字段,在上面的例子中,关联数组array存储的键值实际上是2\\0344。
类似一维数组的成员测试,多维数组可以使用 if ( (i,j) in array)这样的语法,但是下标必须放置在圆括号中。
类似一维数组的循环访问,多维数组使用 for ( item in array )这样的语法遍历数组。与一维数组不同的是,多维数组必须使用split()函数来访问单独的下标分量。split ( item, subscr, SUBSEP)。
执行结果,有乱码。
==========================
�工生产 �钠 硫� 芒硝 �
近代 保护 中国 文集 建筑史 建筑物 研究
高等学校 �省 湖� 文集 课程改革 课程建设
你是windows上编辑的文件吧,要用awk,需要先用dos2unix转为unix格式。
我做测试时是在linux下直接用vim创建的《关键词.txt》文件。
dos2unix 关键词.txt然后再用awk。
我都是在Ubuntu下执行的,一直乱码。检查了“关键词.txt”是unix回车符0a,utf8-nobomb编码
你那里运行正常的话,见私信告我吧
可能环境有差异,我是在Redhat Linux服务器上测试的。
参考技术A , いつか権を手に入れば、血のしぶき天下(爆ましょう犬だ。追答天降异象于前。
参考技术B 内行的概念还没听说过。不过这个需求能开发出来的
可否私谈?
linux shell 如何行内排序
100万行的文件,内容如下,每行5列,空格分开,使用linux shell脚本对每一行进行排列
10 11 12 13 35
10 11 12 13 1
10 11 17 5 2
10 11 12 13 35
1 10 11 12 13
2 5 10 11 17
要排序成这样,每行都是从小到大
sort命令只能排序每行一个数,现在我要在行内排序,不是列排序
以上是关于Linux shell awk怎么去除行内,重复列?的主要内容,如果未能解决你的问题,请参考以下文章