当前位置: 技术问答>linux和unix
grep 和awk的使用
来源: 互联网 发布时间:2016-06-13
本文导语: 请教各位,我使用的系统是solaris 9 .现在我需要对一个1.4G的文本文件进行一个过滤操作,生成一个新的文件。所使用的命令是grep和awk 。但是我对这两个命令不是很熟悉。 比如:其中每一行数据的$1 属性相同,但...
请教各位,我使用的系统是solaris 9 .现在我需要对一个1.4G的文本文件进行一个过滤操作,生成一个新的文件。所使用的命令是grep和awk 。但是我对这两个命令不是很熟悉。
比如:其中每一行数据的$1 属性相同,但是后面的数据就不一样了。
cn.txt
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9124:222233455:10.1233
我需要过滤掉9123的信息也就是需要生成如下文件
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9124:222233455:10.1233
该如何使用grep和awk命令啊?谢谢各位。
比如:其中每一行数据的$1 属性相同,但是后面的数据就不一样了。
cn.txt
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9124:222233455:10.1233
我需要过滤掉9123的信息也就是需要生成如下文件
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9124:222233455:10.1233
该如何使用grep和awk命令啊?谢谢各位。
|
[root@manifold ~]# vi test.sh
[root@manifold ~]# cat test.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9124:222233455:10.1233
[root@manifold ~]# cat test.sh |grep -v 9123 > filename
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9124:222233455:10.1233
[root@manifold ~]# vi test2.sh
[root@manifold ~]# cat test2.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9123:222233466:10.1234:bbb:d1
9123:222233477:10.1235:bbb:d3
9124:222233455:10.1233
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}' > filename
9121
9122
9123
9123
9123
9124
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}' |uniq > filename
9121
9122
9123
9124
[root@manifold ~]#
行了,再看看。。。。
[root@manifold ~]# cat test.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9124:222233455:10.1233
[root@manifold ~]# cat test.sh |grep -v 9123 > filename
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9124:222233455:10.1233
[root@manifold ~]# vi test2.sh
[root@manifold ~]# cat test2.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9123:222233466:10.1234:bbb:d1
9123:222233477:10.1235:bbb:d3
9124:222233455:10.1233
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}' > filename
9121
9122
9123
9123
9123
9124
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}' |uniq > filename
9121
9122
9123
9124
[root@manifold ~]#
行了,再看看。。。。
|
lz,你所需要的答案1和答案2都在这里了
[root@manifold ~]# vi test.sh
[root@manifold ~]# cat test.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9124:222233455:10.1233
[root@manifold ~]# cat test.sh |grep -v 9123
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9124:222233455:10.1233
[root@manifold ~]# vi test2.sh
[root@manifold ~]# cat test2.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9123:222233466:10.1234:bbb:d1
9123:222233477:10.1235:bbb:d3
9124:222233455:10.1233
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}'
9121
9122
9123
9123
9123
9124
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}' |uniq
9121
9122
9123
9124
[root@manifold ~]#
[root@manifold ~]# vi test.sh
[root@manifold ~]# cat test.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9124:222233455:10.1233
[root@manifold ~]# cat test.sh |grep -v 9123
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9124:222233455:10.1233
[root@manifold ~]# vi test2.sh
[root@manifold ~]# cat test2.sh
9121:222233455:10.1233:aaa
9122:222233455:10.1233:a
9123:222233455:10.1233:bbb:d1
9123:222233466:10.1234:bbb:d1
9123:222233477:10.1235:bbb:d3
9124:222233455:10.1233
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}'
9121
9122
9123
9123
9123
9124
[root@manifold ~]# cat test2.sh | awk -F : '{print $1}' |uniq
9121
9122
9123
9124
[root@manifold ~]#
|
简单
awk -F":" '{ if($1~/^9123>/) next; else print $0; }' oldfile.txt > newfile.txt
awk -F":" '{ if($1~/^9123>/) next; else print $0; }' oldfile.txt > newfile.txt
|
[code=BatchFile]
awk '!/9123/ {print}' cn.txt
[/code]
|
更简单了
awk -F":" '{ if($1~/^9123>/) next; else print $1; }' oldfile.txt > newfile.txt
|
这个可以用 grep -v xxx这个选项 来选中不符合xxx的内容
|
有点问题,改一下
[code=BatchFile]
awk '!/^9123/ {print}' cn.txt
[/code]