day9:Linux文件过滤及内容编辑处理(补充)

主要内容:

  • vim命令的故障及解决方法
  • alias命令的内容补充
  • 三剑客之 grep命令
  • tr命令
  • 文件属性的简单讲解

一、vim故障及解决方法

1.vim执行过程;如下图

vim执行过程.png

2.故障产生原因

(1)两个xshell窗口同时打开一个文件
(2)编辑文件时突然断开,导致文件没有正常退出

3.解决方法

(1)删除这个临时文件(.xxx.txt.swp)

错误提示中有文件的名字,找到并删除即可

E325: ATTENTION
Found a swap file by the name".1.txt.swp"
[root@oldedu59 ~]# ls -a 
        .bash_logout   .cshrc     
..   1.txt       anaconda-ks.cfg  .bash_profile  
...  .1.txt.swp  .bash_history    .bashrc        lod.txt    .tcshrc
[root@oldedu59 ~]# rm -f .1.txt.swp 
[root@oldedu59 ~]# ls -a 
.    1        anaconda-ks.cfg  .bash_profile  file2.txt  old
..   1.txt    .bash_history    .bashrc        lod.txt    .tcshrc
...  all.txt  .bash_logout     .cshrc         meinv.txt  .viminfo
[root@oldedu59 ~]# 

(2)把临时文件的内容恢复(不推荐)

[root@oldedu59 ~]# vim 1.txt 
oldboy
oldboy
oldboy
oldboy
oldboy
oldboy
E325: ATTENTION
Found a swap file by the name ".1.txt.swp"
[root@oldedu59 ~]# vim -r 1.txt 
oldboy
oldboy
oldboy
oldboy
oldboy
oldboy
[root@oldedu59 ~]# rm -f .1.txt.swp 
[root@oldedu59 ~]# vim 1.txt 
oldboy
oldboy
oldboy
oldboy
oldboy
oldboy

二、alias 别名:给命令起小名

1.作用

(1)危险命令 加上保护措施
(2)省事 方便 长命令变为短命令

2.配置格式:alias 小名='命令'

(1)临时

[root@oldedu59 tmp]# alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@oldedu59 tmp]# net
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ec2ab149-8316-495e-8883-bbded3f1e53e
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.201
PREFIX=24
GATEWAY=10.0.0.254
DNS1=10.0.0.254
DNS2=223.5.5.5
IPV6_PRIVACY=no

(2) 永久
/etc/profile

[root@oldedu59 ~]# tail -2 /etc/profile
alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens33'

(3)检查

[root@oldedu59 ~]# source /etc/profile
[root@oldedu59 ~]# alias net
alias net='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@oldedu59 ~]# 

三、三剑客之 grep:过滤;在文件中查找

1.-n 显示行号

[root@oldedu59 ~]# grep -n '22' /tmp/vim.log 
46:ssh             22/tcp                          # The Secure Shell (SSH) Protocol
47:ssh             22/udp                          # The Secure Shell (SSH) Protocol
170:imap3           220/tcp                         # Interactive Mail Access
171:imap3           220/udp                         # Protocol v3
411:dict            2628/tcp                        # RFC 2229
412:dict            2628/udp                        # RFC 2229
465:bpjava-msvc     13722/tcp                       # BP Java MSVC Protocol
466:bpjava-msvc     13722/udp                      

2.-w 按单词进行过滤

[root@oldedu59 ~]# grep -w '2222' /tmp/vim.log
EtherNet/IP-1   2222/tcp  EtherNet-IP-1 # EtherNet/IP I/O
EtherNet/IP-1   2222/udp  EtherNet-IP-1 # EtherNet/IP I/O
EtherNet/IP-1   2222/tcp  EtherNet-IP-1 # EtherNet/IP I/O
EtherNet/IP-1   2222/udp  EtherNet-IP-1 # EtherNet/IP I/O
EtherNet/IP-1   2222/tcp  EtherNet-IP-1 # EtherNet/IP I/O
EtherNet/IP-1   2222/udp  EtherNet-IP-1 # EtherNet/IP I/O

3.-i 过滤时不区分大小写

[root@oldedu59 ~]# grep -i 'ipaddr' /tmp/vim.log
IPADDR=10.0.0.201

4.-v 排除/取反

[root@oldedu59 ~]# grep -v '#' /tmp/vim.log

echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null

四、tr :简单一对一替换

< 输入重定向符号

1.把o(小写O)全部替换为数字0

[root@oldedu59 tmp]# tr 'o' '0' < /tmp/oldboy.txt 
0ldb0y
alex
0ldb0y0ldb0y
alex0ldb0y
Oldb0y 0Ldb0y 
OLDBOY

2.把小写全部替换为大写

[root@oldedu59 ~]# tr 'a-z' 'A-Z' 

五、文件属性

[root@oldedu59 ~]# ls -lhi
total 20K

iNode号码;索引节点 文件类型 权限 硬链接数量 1.所有者 ;2.所属家庭 文件大小 文件的修改时间 文件名;不是文件属性
33575762 - rw-r--r-- 1 root root 123 Apr 8 09:48 1
33575770 - rw-r--r-- 1 root root 396 Apr 8 08:35 1.txt
33575015 - rw-r--r-- 1 root root 16 Apr 4 16:45 all.txt
33574978 - rw-------. 1 root root 1.5K Mar 26 11:47 anaconda-ks.cfg
33575760 - rw-r--r-- 1 root root 0 Apr 1 09:42 file2.txt
33575019 - rw-r--r-- 1 root root 8 Apr 4 16:14 lod.txt
33575018 - rw-r--r-- 1 root root 0 Apr 1 20:18 meinv.txt
33575761 - rw-r--r-- 1 root root 0 Apr 1 10:27 old

你可能感兴趣的:(day9:Linux文件过滤及内容编辑处理(补充))