linux 提取指定的列 |
您所在的位置:网站首页 › linux从文件中查找字符串数据 › linux 提取指定的列 |
# 提取name.txt 文件中的最后一列中以:分割的第二列 awk(符截取命令) awk -F '\t' '{print $NF}' name.txt|awk -F ':' '{print $2}'>res.txt其中-F 表示分割符,$NF表示最后一列,$(NF-1)表示倒数第二列 $2表示第二列 ,$0表示全部,$1表示第一列 #把上一步的数据和name.txt文件合并生成一个新的文件 paste res.txt name.txt > out.txt
#读取result.txt文件中的内容,然后删除这些名字的文件夹 #bin/bash cat result.txt | while read line do rm -rf $line done#提取某一列也可以用cut(字符提取命令) -f 列号 提取第几列 -d “分隔符” 截取到分隔符为止 cut -d '\t' -f 1####:cut默认是以TAB来分隔多个列的,而awk默认的列分隔符为一个或多个空格或TAB,相对cut比较方便但有局限性 example cut提取整列,grep提取整行,一般同时使用,例如提取所有普通用户的用户名,所有用户都位于/bin/bash下,-v排除root,截取到:为止 cat /etc/passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1处理文本: a b c q w (e) z x (c c) d f ((g) (g)) 最终结果: c (e) (c c) ((g) (g)) 办法1:\S表示非空白字符 \s表示空白字符 +表示至少一个{2}表示2个以第一行数据为例 (\S+\s+){2}就是指下列高亮的字符串q w (e)其实就是删除前两列 sed -r 's/(\S+\s+){2}//' file2:cut -c 5- file1 cut命令主要是接受三个定位方法: 第一,字节(bytes),用选项-b 第二,字符(characters),用选项-c (一个汉字三个字符)当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开 第三,域(fields),用选项-f |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |