精华内容
下载资源
问答
  • linux 提取指定

    万次阅读 2019-03-21 08:52:57
    # 提取name.txt 文件中的最后一中以:分割的第二 awk(符截取命令) awk -F '\t' '{print $NF}' name.txt|awk -F ':' '{print $2}'>res.txt 其中-F 表示分割符,$NF表示最后一,$(NF-1)表示倒数第二 $...

    # 提取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}//' file

    2:cut -c 5- file1

    cut命令主要是接受三个定位方法:

    第一,字节(bytes),用选项-b

    第二,字符(characters),用选项-c (一个汉字三个字符)当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开

    第三,域(fields),用选项-f

    展开全文
  • linux下按列合并文件 cut用来从文本文件或标准输出中抽取数据或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。 粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将...
    linux下按列合并文件
    

    cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。
    粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。
    paste格式为:
    paste -d -s -file1 file2
    选项含义如下:
    -d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。
    -s 将每个文件合并成行而不是按行粘贴。
    - 使用标准输入。例如ls -l |paste ,意即只在一列上显示输出。
    例子:
    #cat pas1
    ID897
    ID666
    ID982
    #cat pas2
    P.Jones
    S.Round
    L.Clip
    基本paste命令将pas1和pas2两文件粘贴成两列:
    # paste pas1 pas2
    ID897 P.Jones
    ID666 S.Round
    ID982 L.Clip
    通过交换文件名即可指定哪一列先粘:
    # paste pas2 pas1
    P.Jones ID897
    S.Round ID666
    L.Clip ID982
    要创建不同于空格或tab键的域分隔符,使用-d选项。下面的例子用冒号做域分隔符。
    # paste -d: pas2 pas1
    P.Jones:ID897
    S.Round:ID666
    L.Clip:ID982
    要合并两行,而不是按行粘贴,可以使用-s选项。下面的例子中,第一行粘贴为ID号,第二行是名字。
    # paste -s pas1 pas2
    ID897 ID666 ID982
    P.Jones S.Round L.Clip
    paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个6列格式显示目录列表。方法如下:
    # ls /etc | paste -d" " - - - - - -
    MANPATH PATH SHLIB_PATH SnmpAgent.d/ TIMEZONE X11/
    acct/ aliases@ arp@ audeventstab audomon@ auto_master
    auto_parms.log auto_parms.log.old backup@ backup.cfg bcheckrc@ bootpd@
    bootpquery@ bootptab btmp@ catman@ checklist@ chroot@
    clri@ cmcluster/ cmcluster.conf cmom.conf conf@ convertfs@
    copyright cron@ csh.login d.cshrc@ d.exrc@ d.login@
    也可以以一列格式显示输出:
    # ls /etc | paste -d"" -
    MANPATH
    PATH
    SHLIB_PATH
    SnmpAgent.d/
    TIMEZONE
    X11/
    acct/
    aliases@
    arp@
    audeventstab
    audomon@
    auto_master
    auto_parms.log
    auto_parms.log.old
    backup@
    backup.cfg
    展开全文
  • 如何用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 程序员软件大全网 ,不完善,但可以用

    展开全文
  • linux--文件合并和分割

    千次阅读 2013-08-23 15:59:39
    切割合并文件在linux下用split和cat就可以完成。下面举些实例进行说明。 1.文件切割 文件切割模式分为两种:  文本文件  二进制模式。 1.1文本模式 文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读...

    转自:http://www.2cto.com/os/201203/124813.html

    切割合并文件在linux下用split和cat就可以完成。下面举些实例进行说明。

    1.文件切割
    文件切割模式分为两种:
         文本文件
         二进制模式。
    1.1文本模式
    文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读的。文本模式又分为两种:
         按最大文件大小切割;
         按文本行数切割。
    1.1.1最大文件大小切割
    split -C 5k duanxin split
    将文本文件duanxin按每块最大5k的大小进行切割,不打碎行。输出文件名类似splitaa, splitab……
     
    split -b 5k duanxin split
    每个分块(当然,最后一个不保证)大小都是5k,可能会打碎行。
    1.1.2 按文本行数切割
    split -l 100 duanxin split
    每个分块100行,不考虑大小。日志分析时应该有用。
    1.2 二进制模式
    split -b 5k duanxin split
    每个分块(当然,最后一个不保证)大小都是5k,基本不可读。任何类型文件都可以用这种切割模式。
    2.文件合并
    cat split* >newduanxin
    不管用什么方式切割,合并方法不变。
    3.其它
    split可以用-a选项指定输出文件名的长度。如
    split -l 100 -a 3 duanxin split
    则输出文件出类似于splitaaa,splitaab。不指定时默认为2。
    用-b或-C指定分块大小时,可用的单位有,b for 512bytes, k for 1Kbytes, m for 1 Megbytes.
    split 参数:
    -a, --suffix-length=N   指定输出文件名的后缀,默认为2个
    -b, --bytes=SIZE        指定输出文件的字节数
    -C, --line-bytes=SIZE  每一输出档中,单行的最大 byte 数
    -d, --numeric-suffixes  使用数字代替字母做后缀
    -l, --lines=NUMBER    NUMBER 值为每一输出档的列数大小
     
     
    主要内容:sort命令、uniq命令、join命令、cut命令、paste命令、split命令、tr命令、tar命令
    sort 命令:
    Linux的sort命令就是一种对 文件排序的工具,sort命令的功能十分强大,是Shell脚本编程时常用的文件排序工具;
    sort命令与awk一样,将 文件看作 记录和域进行处理,默认的域分隔符是空格符,sort命令的格式为:
    sort [选项] [输入文件]
    选项 意义
    -c 测试文件是否已经被排序   complete
    -k 指定排序的域   k1   k2nr 往后加命令即可
    -m 合并两个已排序的文件   merge
    -n 根据数字大小进行排序   number
    -o [输出文件] 将输出写到指定的文件,相当于将输出重定向到指定文件   open
    -r 将排序结果逆向     reverse
    -t 改变域分隔符   eg:-t:   一般最新定义
    -u 去除结果中的重复行     unique   -u

    uniq 命令
    uniq命令用于去除文本文件中的重复行,这类似于sort命令的-u选项
    sort -u命令时,所有重复记录都被去掉
    uniq命令去除的重复行必须是 连续重复出现的行 中间不能夹杂任何其他文本行

    选项 意义
    -c 打印每行在文本中重复出现的次数   count
    -d 只显示有重复的记录,每个重复记录只出现一次    
    -u 只显示没有重复的记录   unique

    join 命令
    join--- 实现两个文件中记录的连接操作 连接操作将两个文件中具有相同域的记录选择出来,再将这些记录所有的域放到一行(包含来自两个文件的所有域)
    join [选项] 文件1 文件2
    选项 意义
    -a1或-a2 除了显示以共同域进行连接的结果外,-a1表示还显示第1个文件中没有共同域的记录,-a2则表示显示第2个文件中没有共同域的记录
    -i 比较域内容时,忽略大小写差异
    -o 设置结果显示的格式
    -t 改变域分隔符
    -v1或-v2   跟-a选项类似,但是,不显示以共同域进行连接的结果

    -1和-2 -1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域
    当两个文件进行连接时,文件1中的记录可能在文件2中找不到共同域,反过来,文件2中也可能存这 样的记录,join命令的结果默认是不显示这些未进行连接的记录的
    -a和-v选项就是用于显示这些未进行连接的记录,-a1和-v1指显示文件1中的未连接记录,而-a2和-v2指显示文件2中的未连接记录
    -a和-v选项的区别在于: -a选项显示以共同域进行连接的结果,而 -v选项则不显示这些记录

    当两个文件进行连接时,文件1中的记录可能在文件2中找不到共同域,反过来,文件2中也可能存在这样的记录,join命令的结果默认是不显示这些未进行连接的记录的
    -a和-v选项就是用于显示这些未进行连接的记录,-a1和-v1指显示文件1中的未连接记录,而-a2和-v2指显示文件2中的未连接记录
    -a和-v选项的区别在于:-a选项显示以共同域进行连接的结果,而-v选项则不显示这些记录

    join命令默认显示连接记录在两个文件中的所有域,而且是按顺序来显示的。-o选项用于改变结果显示的格式
    join命令 默认比较文件1和文件2的 第1域,如果我们需要通过其他域进行连接,就需要使用 -1和-2选项,-1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域
    join -t: -i -1 3 -2 1 TEACHER1.db TEACHER_HOBBY.db 

    cut 命令
    cut命令用于从标准输入或文本文件中按域或行提取文本
    选项 意义
    -c 指定提取的字符数,或字符范围   count
    -f 指定提取的域数,或域范围   field
    -d 改变域分隔符    
    cut -c1-5 TEACHER.db
    cut -d: -f1,4 TEACHER.db
    cut -d: -f1-3 TEACHER.db

    paste 命令
    paste命令用于将文本文件或标准输出中的内容 粘贴到新的文件,它可以将来自于不同文件的数据粘贴到一起,形成新的文件
    paste  [选项] 文件1 文件2
    选项 意义
    -d 默认域分隔符是空格或Tab键,设置新的域分隔符
    -s 将每个文件粘贴成一行
    - 从标准输入中读取数据

    paste命令的“-”选项比较特殊,当paste命令从标准输入中读取数据时,“-”选项才起作用
    eg:[root@jselab shell-book]# ls | paste -d" " - - - - -                   #从标准输入读取数据
    anotherres.sh array_eval2.sh colon.sh example execerr.sh           #每行显示5个文件名
    execin.sh exec.sh FILE1 FILE2 forever.sh
    hfile loggg loggg1 loopalias.sh matrix.sh
    newfile nokillme.sh part1 part2 part3
    parttotal refor.sh reif.sh selfkill.sh sleep10.sh
    sleep55.sh stack.sh subsenv.sh subsep.sh subsig.sh
    subsparallel.sh subspipe.sh subsvar.sh TEACHER.db test.sh
    testvar.sh traploop.sh

    split 命令
    split命令用于将大文件切割成小文件,split命令可以按照文件的行数、字节数切割文件,并能在输出的多个小文件中自动加上编号
    split  [选项] 待切割的大文件输出的小文件

    选项 意义
    -或-l 此两个选项等价,都用于指定切割成小文件的行数
    -b 指定切割成小文件的字节
    -C 与-b选项类似,但是,切割时尽量维持每行的完整性

    tr 命令
    tr命令实现 字符转换功能,其功能类似于 sed命令,但是,tr命令比sed命令简单
    tr命令能实现的功能,sed命令都可以实现
    tr [选项] 字符串1 字符串2 <输入文件
    tr命令要么将 输入文件重定向到标准输入,要么从 管道读入数据,记住tr命令的输入文件之前需要加上“ <”符号
    选项 意义
    -c 选定字符串1中字符集的 补集,即反选字符串1中的字符集
    -d 删除字符串1中出现的所有字符
    -s 删除所有 重复出现的字符序列,只保留一个

    tr命令的-d选项只需跟一个字符串,它表示删除字符串中出现的所有字符
    tr -d A-Z <AREACODE .db
    tr命令的-s选项用于删除所有重复出现的字符序列,只保留一个,即将重复出现的字符串压缩为一个字符spress
    tr -s "[a-z],[A-Z]" <AREACODE.db
    tr命令也可以加上字符串1和字符串2,将字符串1用字符串2来 替换
    tr "[a-z]" "[A-Z]" <AREACODE
    tr命令的-c选项用于选定字符串1中字符集的补集,即反选字符串1中的字符集contract
    tr -cs "[a-z][A-Z]" "[\012*]" <AR

    tar 命令
    tar命令是Linux的 归档命令 tar命令可以将文件或目录打成一个
    tar [选项] 文件名或目录名
    选项 意义
    -c 创建新的包   create
    -r 为包添加新的文件   refresh
    -t 列出包内容    
    -u 更新包中的文件,若包中无此文件,则将该文件添加到包中  
    -x 解压缩文件  
    -f 使用压缩文件或设备,该选项通常是必选的   file
    -v 详细报告tar处理文件的信息     view
    -z 用gzip压缩和解压缩文件,若加上此选项创建压缩包,   gzip
    那么解压缩时也需要加上此选项

    -f是必选选项,-c选项用于创建包
    tar -cf db.all *.db
    -r选项可将文件添加到包
    -t选项用于查看包的内容
    tar -tf db.all

    tar命令的另一重要功能就是解压缩,以下两种解压缩命令足以满足一般应用要求:
    tar -xvf 压缩包名称                     #解压非gzip格式的压缩包
    tar -zxvf 压缩包名称                   #解压gzip格式的压缩包
    tar -zxvf db.all.gz
    gzip命令是Linux系统中常用的 压缩工具,它可以对tar命令创建的 进行压缩,但是,gzip所生成的压缩包使用 tar -zxvf命令就可解压缩
    展开全文
  • 最近需要利用Shell将多行多文本中某一,通过指定的分隔符合并成一行。假设需要处理的文本如下: 我们主要处理的是,将用户名提取处理,合并成一行,并通过逗号进行分隔。最终的格式如下: “li1”,”huan”,...
  • -c #指定提取的字符数或字符范围 -f #指定提取的域数或域范围 -d #改变域分隔符 paste命令 paste命令用于将文本文件或标准输出中的内容粘帖到新的文件,它可以将来自不同文件的数据粘帖到一起,形成新的...
  • Linux下.a文件的合并

    2017-03-17 13:47:11
    如果不指定提取的模块,则提取库中所有的模块。  下面在看看可与操作选项结合使用的任选项: a:在库的一个已经存在的成员后面增加一个新的文件。如果使用任选项a,则应该为命令行中membername参数...
  • shell学习之按照某列合并两个文件

    万次阅读 2014-03-11 15:18:33
    join命令,就相当于数据库中的内连接,不指定任何参数的情况下,默认按第一列合并,关键字不匹配的行不会输出。sort命令不指定任何参数的情况下,默认按第一排序。 join命令还可以指定按照其它列合并。当然...
  • 也可以从某个文件中提取指定的 N 个包。下面的命令行从 input.pcap 文件中提取100个包(从 401 到 500)并将它们保存到 output.pcap 中:   $ editcap input.pcap output.pcap 401-500 使用 "-D ...
  • Linux Shell 文件的排序、合并和分割

    千次阅读 2013-11-11 14:11:27
    Linux的文本处理命令,包含sort、uniq、join、cut、paste、split、tr、tar,这些命令能实现对文件记录排序、统计、合并提取、粘贴、分割、过滤、压缩和解压缩等,它们与sed和awk一起构成了Linux文本处理的所有命令...
  • 使用 Linux 文本工具简化数据的提取

    千次阅读 2010-10-11 01:05:00
    <br />最经常使用的命令行文本工具概述文档选项 打印本页 将此页作为电子邮件发送 <br />...幸运的是,Linux 有很多源自于 UNIX® 的数据提取工具,包括 head、tail、grep、egrep、fgrep、cut、pa
  • linux系列之常用运维命令整理笔录

    万次阅读 多人点赞 2019-10-28 17:33:21
    本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些...
  • 查找指定文件"比赛目标 将 /etc 目录下所有内容中包含 shiyanlou 字符串的文件的完整路径都写入 /home/shiyanlou/output 文件中 /home/shiyanlou/output 文件中每一行包含一个文件,这个文件的内容中包含 ...
  • Linux的sort命令就是一种对文件排序的工具,sort命令的功能十分强大,是Shell脚本编程时常用的文件排序工具; sort命令与awk一样,将文件看作记录和域进行处理,默认的域分隔符是空格符,sort命令的格式为: sort ...
  • join join 是 paste 的一个很好的增强版本。...下面是在使用 join 对其进行合并时所发生的事情:   # join fileone filetwo     注意这并没有显示任何东西。join 工具必须要在所操作的文件之间找到共同的域,默
  • Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理   sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们...
  • -l 出文件内容符合指定的范本样式的文件名称。 -L 出文件内容不符合指定的范本样式的文件名称。 -A<显示数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 -b 在显示符合范本样式的那一行之外...
  • -d指定域分隔符,-f 指定要剪出哪几个域,这个与awk的输出特定字段功能一样。 -d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了 如何分的清...
  • 如果说PDF是电子纸张,那么pdftk就是电子起钉器、打孔机、粘合剂、解密指环和 ...它不需要Acrobat,并且可以运 行在 Linux, Windows, Mac OS X, FreeBSD和Solaris之上。 在Debian/Ubuntu中你可以通过apt安装pd
  • 00. 目录 文章目录00. 目录01. 命令概述02. 命令格式03. 常用选项04. 参考示例05....01. 命令概述 cut - 在文件的每一行中提取片断 说明:该命令有两项功能,其... f3将把文件fl和几的内容合并起来,然后通过输出重定向...
  • Linux运维常见面试题汇总

    万次阅读 多人点赞 2016-10-19 09:01:08
    Linux面试题 一、填空题 1. 在Linux 系统 中,以文件方式访问设备 。 2. Linux 内核引导时,从文件/etc/fstab中读取要加载的文件系统 。 3. Linux 文件系统中每个文件用indoe节点来标识。 4. 全部磁盘块由...
  • 7z = pd.concat(concat_list,ignore_list=True) 8print(z) 9 10# 或者直接可以写成z = pd.concat([xx,yy],ignore_list=True) 结果如下: 二、多工作簿合并(一) 1、将多个Excel合并到一个Excel中(每个Excel...
  • 大数据学习之Linux基础

    万次阅读 多人点赞 2019-10-15 11:14:10
    大数据学习之Linux基础 自定义Linux虚拟机安装网络配置1.node1网络配置2.通过快照克隆虚拟机3.配置其他三个节点虚拟机Linux简单命令shell命令运行原理图1.关机与重启2.判断命令的命令3.常用功能命令4.文件系统命令...
  • Linux curl 命令详解

    万次阅读 多人点赞 2019-08-08 17:10:28
    如果这些命令在同一个命令行使用多次,这些数据片段将使用指定的分隔符 & 合并。 因此,使用 ‘-d name=daniel -d skill=lousy’ 将生成一个类似 ‘name=daniel&skill=lousy’ 的post块,也可以直接这样合并使用。 ...
  •  -c 指定提取的字符数或字符范围  -f 指定提取的域或域的范围  -d 改变域分割符    4 tar  1 tar命令是Linux的归档命令,通俗的说tar命令实现了Linux系统文件的压缩和解压缩  2 tar命令...
  • Linux基础介绍

    千次阅读 2015-04-16 17:01:46
    Linux基础介绍!
  • 错误信息通常是“参数太长”或“参数溢出”。这就是xargs的用处所在,特别是与 find命令一起使用,exec会发起多个进程,而xargs会多个,只有一个 find ./ -perm -7 -print | xargs chmod o-w 查找权限为7的文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,543
精华内容 7,817
关键字:

linux提取指定列合并

linux 订阅