当前位置: 技术问答>linux和unix
shell分离文本文件
来源: 互联网 发布时间:2016-12-06
本文导语: 一个文本文件有N行,我想把其中几行提取到A文件,把剩下的几行放到B文件,A+B=原来的N行,应该用什么命令呢。如果用grep,A+B>N 我的目的是要看这个文件有多少种记录,同一种的都剪切出来,慢慢剩下其他种的,...
一个文本文件有N行,我想把其中几行提取到A文件,把剩下的几行放到B文件,A+B=原来的N行,应该用什么命令呢。如果用grep,A+B>N
我的目的是要看这个文件有多少种记录,同一种的都剪切出来,慢慢剩下其他种的,最终找出所有不同种类,不知道能理解不
我的目的是要看这个文件有多少种记录,同一种的都剪切出来,慢慢剩下其他种的,最终找出所有不同种类,不知道能理解不
|
为什么grep会使A+B>N了。
你可以grep '/pattern/' file >outfile;接着grep -v '/pattern/' file >B
你可以grep '/pattern/' file >outfile;接着grep -v '/pattern/' file >B
|
sed -i '/pattern/ d' yourfile
|
你看这样行不行?
[root@otis tmp]# cat test.txt
12345
1234
123
12
假设pattern是12345
[root@otis tmp]# sed $(grep -n 12345 test.txt |tee -a res|awk -F : '{print $1}')d test.txt
1234
123
12
先将要的结果导入,再利用tee 获得行号,然后进行删除
[root@otis tmp]# cat test.txt
12345
1234
123
12
假设pattern是12345
[root@otis tmp]# sed $(grep -n 12345 test.txt |tee -a res|awk -F : '{print $1}')d test.txt
1234
123
12
先将要的结果导入,再利用tee 获得行号,然后进行删除