Linux文本操作命令及正则表达式基础


【文本文件操作命令】

cat        查看文件内容

more      逐屏查看文件内容

less       逐行查看文件内容

head      显示文件开头部分内容

tail        显示文件结尾部分内容

 

tail –f  20 /var/log/messages      -f可以一直追踪这个文件内容,一般是日志文件,20表示显示的行数。运维工作中常用重要命令。

 

Cut  –d: -f1 /etc/passwd 以:为分隔符 截取每行第一段字符

 

sort 排序

如:du |sort –n–r        -n是以数字排序,-r是反向排序

-t:以冒号为分隔符

+2以第二列开始排

 

wc  统计文件下有多少行 多少字符

[root@localhostddd]# wc /etc/passwd

36   541637 /etc/passwd

如上:36行 54个单词1637个字符

参数:

–l     行

–w    单词

-c     字符

 

unip 将相邻的相同行的去掉

如:

[root@localhostddd]# cut -d: -f7 /etc/passwd |uniq

/bin/bash

/sbin/nologin

/bin/sync

/sbin/shutdown

/sbin/halt

/sbin/nologin

 

/sbin/nologin

/bin/bash

 

diff  文件A 文件B  对比A和B的区别

 

 

【正则表达式】

echo *与echo “*”的区别

[root@localhost~]# echo *

aaaall.sql anaconda-ks.cfg bastest case Desktop install.log install.log.syslogxunhuan

[root@localhost~]# echo”*”

*

echo*     中bash将*理解为任意位置的任意字符

echo“*”中双引号的作用是将内容注释为字符串

 

.       任意的一个字符

*       任意多的任意字符

\        脱意符

^       以……开头

$       以……结尾

\<  \>   以……开头以……结尾

a\{18\}    a重复18次

 

为配置文件瘦身

#grep ‘.\{10\}’ /usr/share/dict/words

.重启10次的(字符为10)的单词

#grep ‘.\{10,\}’ /usr/share/dict/words

在此文件中找出.重复10次以上的(字符大于10)的单词

grep -v ‘^#’ /etc/httpd.conf  | grep –v ‘^$’

找出除了以#开头的,并除去以刚开头就结尾的(空行)的内容

 

[abc]表示当前一个位置a、b或c

#grep ‘^[abc]’ /etc/passwd  以a或b或c开头的

#grep ‘^[^1-9]’ /etc/passwd 不是以1-9开头的

You must be logged into post a comment.