ubuntu操作系统学习笔记之文本处理

来源:互联网 发布:mysql update 走索引 编辑:程序博客网 时间:2024/05/16 18:18

文件浏览

   

    cat : 显示全部内容
    more    : 以向下翻页的方式查看内容
    less    : 以向上/向下翻页的方式查看内容
    head    : 查看头N行(默认10行)
    tail    : 查看尾N行(默认10行)


grep


    说明 : 基于关键字搜索文本.
           Search for PATTERN in each FILE or standard input.
    格式 : grep [OPTION]... PATTERN [FILE]...
    可选项
        -i  : 忽略大小写

[root@wuqinfei wuqinfei]# grep 'WUQINFEI' /etc/passwd[root@wuqinfei wuqinfei]# grep -i 'WUQINFEI' /etc/passwdwuqinfei:x:500:500:wuqinfei:/home/wuqinfei:/bin/bash

   -n  : 显示结果所在行数

[root@wuqinfei wuqinfei]# grep -n 'wuqinfei' /etc/passwd35:wuqinfei:x:500:500:wuqinfei:/home/wuqinfei:/bin/bash


     -v  : 输出不带关键字的行
        -A行数    : 输出匹配行之后的 N 行
        -B行数    : 输出匹配行之前的 N 行

[root@wuqinfei wuqinfei]# grep -n 'wuqinfei' /etc/passwd35:wuqinfei:x:500:500:wuqinfei:/home/wuqinfei:/bin/bash[root@wuqinfei wuqinfei]# grep -nB3 'wuqinfei' /etc/passwd32-abrt:x:173:173::/etc/abrt:/sbin/nologin33-sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin34-tcpdump:x:72:72::/:/sbin/nologin35:wuqinfei:x:500:500:wuqinfei:/home/wuqinfei:/bin/bash


 示例
        $ grep 'wuqinfei' /etc/passwd
        # find / -user wuqinfei | grep 'Video'

[wuqinfei@wuqinfei ~]$ grep 'wuqinfei' /etc/passwdwuqinfei:x:500:500:wuqinfei:/home/wuqinfei:/bin/bash[root@wuqinfei wuqinfei]# find / -user wuqinfei | grep 'Video'find: `/proc/2317/task/2317/fd/5': No such file or directoryfind: `/proc/2317/task/2317/fdinfo/5': No such file or directoryfind: `/proc/2317/fd/5': No such file or directoryfind: `/proc/2317/fdinfo/5': No such file or directory/home/wuqinfei/Videos[root@wuqinfei wuqinfei]# find / -user wuqinfei 2> /etc/null | grep 'Video'/home/wuqinfei/Videos

cut


    说明 : 基于列 处理文本. 
           Print selected parts of lines from each FILE to standard output.
    格式 : cut OPTION... [FILE]...
    选项
        -d分隔符: delimiter, 指定分隔字符(默认是Tab)
        -f列号    : fields, 输出切割后的第几列, 从1开始. -f1,2,3  -f1-3
        -c  : 基于字符进行切割; -c2-4  , 获得每行的第2到4个字符. (从1开始)
    示例
        # cut -d: -f1 /etc/passwd
        # grep wuqinfei /etc/passwd | cut -d: -f2
        # grep wuqinfei /etc/passwd | cut -c1-4

[root@wuqinfei wuqinfei]# tail -n 3 /etc/passwdtcpdump:x:72:72::/:/sbin/nologinwuqinfei:x:500:500:wuqinfei:/home/wuqinfei:/bin/bashuser_a:x:501:501::/home/user_a:/bin/bash[root@wuqinfei wuqinfei]# tail -n 3 /etc/passwd | cut -d: -f1tcpdumpwuqinfeiuser_a[root@wuqinfei wuqinfei]# grep wuqinfei /etc/passwdwuqinfei:x:500:500:wuqinfei:/home/wuqinfei:/bin/bash[root@wuqinfei wuqinfei]# grep wuqinfei /etc/passwd | cut -d: -f2x[root@wuqinfei wuqinfei]# grep wuqinfei /etc/passwd | cut -d: -f1,2,3wuqinfei:x:500[root@wuqinfei wuqinfei]# grep wuqinfei /etc/passwd | cut -d: -f1-3wuqinfei:x:500[root@wuqinfei wuqinfei]# grep wuqinfei /etc/passwd | cut -d: -f1wuqinfei[root@wuqinfei wuqinfei]# grep wuqinfei /etc/passwd | cut -c1-4wuqi

wc


    说明 : 统计文本信息
           Print newline, word, and byte counts for each FILE, and a total line if
           more than one FILE is specified.  With no FILE, or when FILE is -,
           read standard input.
    格式 : wc [OPTION]... [FILE]...
    选项
        -l  : 统计行数
        -w  : 单词数
        -c  : 字节数
        -m  : 字符数
    示例

[root@wuqinfei MyDir]# cat 1.txthellohello worldhello linux world[root@wuqinfei MyDir]# wc 1.txt 3  6 36 1.txt[root@wuqinfei MyDir]# wc -l 1.txt3 1.txt[root@wuqinfei MyDir]# wc -w 1.txt6 1.txt[root@wuqinfei MyDir]# wc -c 1.txt36 1.txt[root@wuqinfei MyDir]# wc -m 1.txt36 1.txt

sort


    说明 : 对文本内容进行排序, 不会写入原文件.(基于ASCII码表)
           Write sorted concatenation of all FILE(s) to standard output.
    格式 : sort [OPTION]... [FILE]...
    选项
        -r  : 倒序
        -n  : 基于数字
        -f  : 忽略大小写
        -u  : 删除所有重复行  --unique. 也可使用 uniq命令删除相邻的重复行

[root@wuqinfei MyDir]# sort -u chs.txtaaab[root@wuqinfei MyDir]# uniq chs.txtaaabaaa





     -t分隔符: 先用字符"c"对每行分隔, 然后基于-k列号 排序

[root@wuqinfei MyDir]# cat chs.txta:e:dc:b:a[root@wuqinfei MyDir]# sort chs.txta:e:dc:b:a[root@wuqinfei MyDir]# sort -t: -k3 chs.txtc:b:aa:e:d


示例

[root@wuqinfei MyDir]# cat chs.txtbcaed[root@wuqinfei MyDir]# sort chs.txtabcde[root@wuqinfei MyDir]# cat chs.txtbcaed

diff


    说明 : 文本比较
           Compare files line by line.
    格式 : diff [OPTION]... FILES
    选项
        -i  : 忽略大小写
        -b  : 忽略空格
        -u  : 统一显示比较信息(一般用于生成patch文件)
    示例


[root@wuqinfei MyDir]# cat fileaaaabbbb[root@wuqinfei MyDir]# cp file file-new[root@wuqinfei MyDir]# ls -ltotal 8-rw-r--r--. 1 root root 10 Feb  3 13:45 file-rw-r--r--. 1 root root 10 Feb  3 13:46 file-new[root@wuqinfei MyDir]# echo "ccc" >> file-new[root@wuqinfei MyDir]# cat file-newaaaabbbbccc[root@wuqinfei MyDir]# diff file file-new2a3> ccc[root@wuqinfei MyDir]# diff -u file file-new--- file        2014-02-03 13:45:38.328922704 +0800+++ file-new    2014-02-03 13:46:38.050923691 +0800@@ -1,2 +1,3 @@ aaaa bbbb+ccc[root@wuqinfei MyDir]# diff -u file file-new > file.patch

tr


    说明 : TRanslate, 处理文本内容.
           Translate, squeeze, and/or delete characters from standard input, 
           writing to standard output.
    格式 : tr [OPTION]... SET1 [SET2]
    示例

[wuqinfei@wuqinfei MyDir]$ cat filehello, John.Mike, hello.[wuqinfei@wuqinfei MyDir]$ tr -d 'hello' < file, Jn.Mik, .[wuqinfei@wuqinfei MyDir]$ tr 'a-z' 'A-Z' < fileHELLO, JOHN.MIKE, HELLO.


sed


    说明 : 搜索并替换文本内容
    格式 :  sed [OPTION]... {script-only-if-no-other-script} [input-file]...
    示例: $ sed 's/a/b/g' file   将文件中所有a替换成b; s, search; g, global

[wuqinfei@wuqinfei MyDir]$ cat fileaaaaaaaa[wuqinfei@wuqinfei MyDir]$ sed 's/a/b/' filebaaabaaa[wuqinfei@wuqinfei MyDir]$ sed 's/a/b/g' filebbbbbbbb


示例: $ sed '2,4s/a/b/g' file  替换第2~4行

[wuqinfei@wuqinfei MyDir]$ cat file1aaaa2aaaa3aaaa4aaaa5aaaa[wuqinfei@wuqinfei MyDir]$ sed '2,4s/a/b/g' file1aaaa2bbbb3bbbb4bbbb5aaaa


  示例: $ sed -f script-file  file  调用文件中的script

[wuqinfei@wuqinfei MyDir]$ sed '2,4s/a/b/g' file1aaaa2bbbb3bbbb4bbbb5aaaa[wuqinfei@wuqinfei MyDir]$ echo '2,4s/a/b/g' > script-file[wuqinfei@wuqinfei MyDir]$ cat script-file2,4s/a/b/g[wuqinfei@wuqinfei MyDir]$ sed -f script-file  file1aaaa2bbbb3bbbb4bbbb5aaaa


示例: $ sed -e script1 -e script2 file 同时使用多个script 

[wuqinfei@wuqinfei MyDir]$ sed '1,3s/a/b/g' file1bbbb2bbbb3bbbb4aaaa5aaaa[wuqinfei@wuqinfei MyDir]$ sed '4,5s/a/c/g' file1aaaa2aaaa3aaaa4cccc5cccc[wuqinfei@wuqinfei MyDir]$ sed -e '1,3s/a/b/g' -e '4,5s/a/c/g' file1bbbb2bbbb3bbbb4cccc5cccc



0 0
原创粉丝点击