linux常用的文本处理命令

输出到屏幕:

    echo命令:显示一行文本。

        -n:不显示结尾的换行符。

        -e:开启扩展选项。

        -E:默认选项,表示关闭扩展选项。

        \n:扩展选项,表示换行。

        \t:扩展选项,显示tab。

    printf命令:格式化或和显示数据。

        printf  formart-strings [arguments ...]

[root@lg ~]# echo "Today is a good day." #显示一行文本
Today is a good day.
[root@lg ~]# echo -n "Today is a good day." #显示一行文本,不显示换行等同于printf
Today is a good day.[root@lg ~]# echo -e "Hi boy.\nToday is a good day." #显示多行文本,-e启用扩展选项,\n换行
Hi boy.
Today is a good day.
[root@lg ~]# printf "Today is a good day." #printf 默认不显示换行符
Today is a good day.[root@lg ~]# printf "Today is a good day.\n" #m默认启用扩展选项
Today is a good day.
]# printf "%-4s %-4s %-4s\n" 姓名 性别 年龄
姓名 性别 年龄

#%s %c %d %f都是格式替代符
#%-4s 指一个宽度为4个字符(-表示左对齐,没有则表示右对齐),若没有占用到4个则用空格填充,若超出也会全部显示。
#%-4.4f:.4表示保留小数点后4位

    注:printf和echo的区别是,echo默认不开启扩展选项和默认显示换行符,而printf默认不显示换行符开启格式选项。

普通文本内容查看:

    cat命令:连接文件并显示到标准输出。

        -n:显示文本行号。

        -E:显示每行的末尾,即$符号,linux末尾只有$符号,dos末尾有$和\n。

        -T:用^I显示文本里面的制表符。

        -A:显示所有制表符。

    more:分页查看文件内容,只支持向下翻页、翻行,翻到末尾自动退出。

    less:分页查看文件内容,支持向上、下、翻页翻行,翻到末尾不退出。

文本处理命令:

    tail命令:显示文本后面多行内容。

          -n NUM/-NUM:表示显示指定文件后NUM行内容。

         -f:显示文本后面多行内容,不退出,等待文件被写入的新内容把它输出到控制台。

    head命令:显示文本前多行内容。

         -n NUM/-NUM:表示显示文本前NUM行内容。

    tr命令:转换或删除字符(注意:单个字符进行处理)。

        命令格式:

                tr [OPTION]... SET1 [SET2]

        命令选项:

                -d:删除SET1中出现的字符。

        命令示例:

[root@lg ~]# echo "123abc123" | tr 'ab'  'AB'  #将echo输入的内容中的ab这两个字符转换成AB这两个字符
123ABc123
[root@lg ~]# echo "abcdef" |tr 'a-z' 'A-Z' #将所有小写替换成大写
ABCDEF
[root@lg ~]# echo "abcdef" |tr -d 'a'  #删除字符集中出现的字符
bcdef

    cut命令:按段来切割文本内容的每一行。

        -d:指定分割符号。

        -f:指定切割每行文本的第几段比如,1、1,3、1-3。

    sort命令:排序。

        -n:按数值大小排序。

        -r:倒叙。

        -k:指定按第几段来排序。

        -t:指定分隔符号。

       -u:排序后去重。

        -f:忽略字符大小写排序。

    uniq命令:报告或跳过重复的行。

        -d:只显示重复的行。

        -D:显示所有重复的行。

        -c:显示行重复的次数。

    wc命令:显示文本行数、字节数、单词数。

        -l:行数

       -w:单词数

        -c/m:字符/字节数

    grep命令:

        -o:显示匹配到的字符

        -w:匹配整词

        -i:忽略大小写

       -E:开启扩展选项

       -A、-B、-C:表示匹配匹配到的前、后、前后多少行

       -v:排除

       --color:匹配到的字符用特殊颜色标记

    sed命令:Steam EDitor流编辑器,从标准输入中按行读取文件内容到模式空间,并在模式空间进行处理,把处理的结果输出到屏幕。

      命令格式:sed [OPTION]... 'AddressCommand' file...

      [OPTION]:

        -n:静默模式,只显示被模式匹配和处理后的内容;

        -i:将处理后的内容写入到源文件;

        -f /path/to/file:从/path/to/file中读取AddressCommand内容;

        -r:支持扩展的正则表达式;

        -e:添加多个'AddressCommand';

     Address:指定对源文件处理的范围

        1.startline,endline:指定开始行和结束行;

        2./pattern1/,/pattern2/:指定从第一次匹配到pattern1开始到第一次匹配到/pattern2/结束;

        3./pattern1/,+N:指定从第一次匹配到pattern1开始到之后的N行结束;

        4.正则匹配:指定正则表达式匹配到的行

      Command:对匹配到的行执行命令

         p:显示指定地址的行;

         d:删除指定地址的行;

         a \strings:向匹配到的行后添加strings;

         i  \strings:向匹配到的行前插入strings;

         r /path/to/file:向匹配到的行追加/path/to/file文本内容;

         w /path/to/file:将匹配到的行写入到/path/to/file,若/path/to/file文件中有内容,则内容将会被覆盖;

         s###g、s@@@g、s///g:全局替换,若不加g则表示替换匹配到的行的第一个。

    awk命令:

其他常识:

    基本正则表达式

        .:匹配任意单个字符

        []:匹配括号中的字符

        [^]:匹配括号外的字符

        [:upper:] [:lower:] [:alpha:] [:digit:] [:alnum:] [:space:] [:punct:]

        \(\):分组,匹配括号中的内容,也可以将括号内的内容用做后项引用(即表示括号前内容和括号后内容是相同的)

            例子:

#1.echo "like love",使用sed命令给like和love都加上r。
~]# echo  "like love" |sed 's#\(l..e\)#\1r#g'
liker lover

         *:匹配前面字符出现任意次

        .*:匹配任意字符出现任意次

        \?:匹配前面字符出现0次或1次

[root@lg ~]# echo  "like love" |grep -o "ll\?ike"
like
[root@lg ~]# echo  "like love" |grep -o "l\?ike"
like

       \{m,n\}:匹配前面字符至少出现m次,最多出现n次

      \{m,\}:至少m次

      \{,n\}:最多出现n次

    位置锚定:

      ^:后面的任意内容必须出现在行首

      $:前面的任意内容必须出现在行尾

      \<或者\b:前面的任意内容必须作为单词首部出现

     \>或则\b:前面的任意内容必须座位单词尾部出现

    扩展正则表达式:

       字符匹配:.、[]、[^]

       次数匹配:.*、*、+、?、{m,n}

       分组:() :(C|c)at、\1

       位置锚定:$、^、<\、\>

       或则:|

    通配符

        ?:匹配任意单个字符

         *:匹配任意字符出现任意次

         []:匹配括号内的字符

         [^]:匹配非括号内的字符

         [:lower:]:所有小写字母
         [:upper:]:所有大写字母
         [:alpha:]:所有大小写字母

         [:digit:]:所有数字

         [:alnum:]:所有数字和字母

         [:space:]:空格

         [:punct:]:特殊符号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值