文本查阅与编辑

二、文本编辑工具
1>cat and less 文件内容查看
cat 可以查看文件内容
语法格式: cat options path/filename
cat 的选项
-s     把文件中的多个连续的空白行压缩为一个
-A   (显示所有 数字代表字母或其它符号 )即原样输出
-n    用来显示行号
-E     每一行都以 $ 符号结尾
cat 查看的文件应是以 ASCII 编写的,若查看二进制文件会出现乱码,在出现乱码后可以使用 reset 或者 tset 复位
 
less 文件导航
less 选项 path/filename
less 的选项有
          space              向前翻阅一屏
          b                   向后翻阅一屏
          Enter             向前一行
          k                   向后一行
          g                   快速到行首
          G                快速到行尾
          /text             搜索文件
          n                   重复上次搜索
          N                   重复上次搜索,但是反方向进行
          q                   退出 less
          v                   调用编辑器编辑文本,(默认为 vi ): wq 退出到 less 下再按 q 退出 less
m                  显示所占的比例
M                 一共有多少行文件,现在在第几行
less more
   more 只能从前向后翻页,翻完退出。
less  既可以向前翻又可以向后翻。
文件摘录查看 head and tail
head 语法格式       
head  �Cn  m  filename            m 为数字,表示显示前 m
    例如 head  �Cn  3  /etc/passwd       查看 /etc/passwd 文件中的前三行
              也可以写为 head -3 /etc/passwd   二者效果相同。如果不加 -3 会把全文显示出来
tail 语法格式
      tail 选项的选项有 -n -f
      -n     用来显示第几行
-f   follow 处于等待状态,如果此时有人向被查看的文件中写入或者追加东西,
内容也会显示出来。因此常用于动态查看日志
        tail  -n  m    filename            m 为数字,表示显示最后 m
例如 tail  �Cn  5  /etc/passwd          查看 /etc/passwd 文件中的最后 5
  也可以写为 tail  -5  /etc/passwd
如果想要只抽取一个文件中( /var/log/message )的第 五行可以使用
head -5 /var/log/message | tail -1 
如果想要只抽取一个文件中 倒数第三行可以使用
tail -3  /var/log/message | head 1
 
 
grep
grep 语法格式
grep [options]   模式   /path/to/file
grep 选项
--color  显示匹配串的颜色 ={auto|never|always}
-E ==egrep
-v   反向查找,只显示不匹配的行
-i  比较字符时忽略大小写的区别
-r
-o    只显示匹配的字符
-n   在匹配行前显示其在文件中的相对行号
-c    只显示匹配到的行的数目,而不显示行的内容
-Ax  搜索匹配行的前两行
-Bx  搜索匹配行的后两行
-Cx  搜索匹配行的前后各两行
 
例如: 搜索 /etc/passwd 用户 Shell bash 并且家目录是 /home 的用户
grep “bash$” /etc/passwd | grep “/home”
其中 bash$ 表示以 bash 结尾, grep “/home” 表示包含 /home
| 则是管道 用来把前一个命令的输出作为后一个命令的输入
 
grep 的模式支持正则表达式
cut 字符分隔
 cut   [xuanxiang ]  /path/to/somefile
 cut �Cd: -f3       -d 指定分隔符    -f 显示字段
f3-5 显示第三道第五个字段
 
 
ip
ifconfig | grep ‘inet addr’ | cut �Cd: �Cf2 | cut �Cd’ ‘ �Cf1
ifconfig | grep �CE �Ccolor=auto “inet addr:([0-9]{1,3}\.){3}[0-9]{1,3}”
 
ifconfig | grep �CE -o “inet addr:([0-9]{1,3}\.){3}[0-9]{1,3}” | cut �Cd: -f2
 
access_log 日志文件中过滤 ip
 
grep �CE �Ccolor=auto “^ ([0-9]{1,3}\.){3}[0-9]{1,3}”
 
sed 流编辑器
按行匹配处理
sed option ’pattern’ /path/to/somefiles
行编辑器 按行处理
模式‘ pattern ’要用单引号扩住
s///   ,   s@@@  分隔符
定值表达式
a b///  a 开始 b 结束
/ab/,/cd/s  从第一个出现 ab 的行开始   到第一个出现 cd 的行结束
i \    在搜索到的内容之前插入一个新行
a \  在搜索到的内容之后插入一个新行或多行
d   删除匹配到的行
g   取出暂存缓冲区的内容,将其复制到模式空间,覆盖该处原有内容
G   取出暂存缓冲区的内容,将其复制到模式空间,追加在原有内容后面
p    打印    会显示两次。加上 -n 可以只显示匹配到的内容
y///  替换,字符集匹配 y/ab/AB/        a-A  b-B           
s     替换,字符串匹配 s/ab/AB/         ab 替换为 AB
!    对所选行以外的所有行应用命令
r    从文件中读取打印行
q   结束或退出 sed
 
ifconfig | sed ‘/^eth0/,/^lo/s’
 
sed ‘s/[1-9][0-9]\{0,2\}\.’
查找 ifconfig ip 地址并把它替换为主机名
sed ‘/^eth0/,/^lo/s/([0- 9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/www.a.com/’
 
sed.test 文件中添加
a b   c d
交换 a  b c d 的位置
echo �Ce “a b\n c d” > sed.test
echo -e 选项可以使换行符 \n 生效 否则 \n 会被原样输出
& 可以引用 / 前的整体
sed s/a/&&a/ sed.test
相当于用 aaa 替换 a

你可能感兴趣的:(职场,文本,休闲,查阅)