awk和sed都是功能超强的文件处理工具,awk主要用于行处理,sed用于列的处理
简介awk用法
awk是一个对文本操作的工具,可以直接用于命令行,也可以以脚本的形式
以截取自己的局域网ip为例1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16[root@linux hexo]# ifconfig wlp1s0
wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.103 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::c6d9:87ff:fe5a:68f1 prefixlen 64 scopeid 0x20<link>
ether c4:d9:87:5a:68:f1 txqueuelen 1000 (Ethernet)
RX packets 313404 bytes 392626230 (374.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 213498 bytes 26747428 (25.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@linux hexo]# ifconfig wlp1s0|grep -w "inet"
inet 192.168.1.103 netmask 255.255.255.0 broadcast 192.168.1.255
[root@linux hexo]# ifconfig wlp1s0|grep -w "inet"|awk -F" " '{print $2}'
192.168.1.103
awk 的主要用法 -F参数后面接分隔的字符” “
后面接’{ }’ $1 $2..
分别代表分隔出来的每一列,print $1
就是输出这一列
这只是awk的一种用法而已,awk算得上一个脚本语言,有自己独立的语法,就不一一概述
sed
和awk
不同,sed
主要是用于文本行的处理
比如有test.txt
文件
在test.txt
文件的第四行插入hello
这一行sed '4 i\hello' test.txt
sed -i '4 i\hello' test.txt
将test.txt文件的第四行删除sed '4 d' test.txt
sed -i '4 d' test.txt
将test.txt
文本中的所有的hello
替换成world
sed 's/hello/world' test.txt
sed -i 's/hello/world' test.txt
以上的两种操作,不加-i参数会把修改后的结果输出到屏幕上,但不会对原文件修改
加上-i
之后,修改后的结果并不会回显示到屏幕上,直接会对文件修改
以上只是sed的最常见的用法而已。。。。