怎么用Linux命令提取表格文本中的某列

如何用Linux命令提取表格文本中的某列

文本文件x.txt内容如下:

kaa    a:\dkdkdk      123
dfdfdf b:\xxxxxxxxx  3234
j你好x c:\fdfdfv     打开

我现在要提取第二列,即:

a:\dkdkdk
b:\xxxxxxxxx
c:\fdfdfv 

解决方案:

grep -a  '.'  x.txt | tr -s ' ' ' ' |cut -d  ' ' -f 2


对命令的解释,grep -a  '.'   x.txt | 作用是将x.txt中的文本安行读出,并管道方式传给tr命令.

tr -s ' ' ' '  | 用于合并连续的空格为一个空格,并将结果以管道方式传给cut命令.

cut -d  ' ' -f 2  用于获取第二列数据


生活中有很多这样的问题,比如你要批量去掉windows共享目录,但是

net share  xxx  /del  每次只能取消一个,我们就要通过net share来列出所有共享结果,这是我们就需要将结果(如下所类似):
kaa    a:\dkdkdk    
dfdfdf b:\xxxxxxxxx 
j你好x c:\fdfdfv     
的第1列取出,然后放在批处理命令中自动全部取消。

呵呵,或许你会说,怎么windows和linux混为一谈了呢,这是因为windows上安装了cygwinportable后也可以使用Linux命令,Linux命令的确很强大。

2014-06-25 23:39


顺便给自己的小网站打个广告:www.uhdesk.com 程序员软件大全网 ,不完善,但可以用