标签:opera 文本文件 文本编辑器 gawk ftp 方便 $0 大文件 postfix
sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。
sed的使用方法,调用sed 命令的语法有两种:
一.在命令行指定sed指令对文本进行处理:sed +选项 ‘指令’ 文件
二.先将sed指令保存到文件中,将该文件作为参数进行调用:sed +选项 -f 包含sed指令的文件 文件
-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
-f:后跟保存了sed指令的文件
-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行
a:追加 向匹配行后面插入内容
c:更改 更改匹配行的内容
i:插入 向匹配行前插入内容
d:删除 删除匹配的内容
s:替换 用斜线间指定的第二个文本字符串来替代第一个文本字符串。
[root@node3 ljy]# more ceshi.sh this is one! [root@node3 ljy]# sed -i ‘s/one/two/‘ ceshi.sh [root@node3 ljy]# more ceshi.sh this is two!
默认情况下,只会替换一行中的第一处。要想替换一行中不同地方出现的文件必须使用替换标记。
s/pattern/replacement/flags
有四种可用的替换标志:
[root@node3 ljy]# more ceshi.sh this is one,one,one [root@node3 ljy]# sed -i ‘s/one/two/2 ‘ ceshi.sh [root@node3 ljy]# more ceshi.sh this is one,two,one [root@node3 ljy]# sed -i ‘s/one/two/g ‘ ceshi.sh [root@node3 ljy]# more ceshi.sh this is two,two,two
p:打印 打印出匹配的内容,通常与-n选项和用
=:用来打印被匹配的行的行号
n:读取下一行,遇到n时会自动跳入下一行
r,w:读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件
gawk提供了一种编程语言而不只是编程命令。
gawk options program file*
options的可用选项有:
-F fs 指定行中分隔数据字段的字段分隔符。个人不建议使用这个选项,在BEGIN块中设置FS更好。这个选项只是提供了一个简洁的设置方式。 -f file:指定读取程序的文件名 -v var=value 定义gawk程序中的一个变量及其默认值。个人不建议使用这个选项,在BEGIN块中设置更好。 -mf N 指定要处理的数据文件中的最大字段数 -mr N 指定数据文件中的最大数据行数 -W keyword 指定gawk的兼容模式或警告等级
[root@node1 ~]# awk ‘{print "hello"}‘ asd hello adf hello asd hello qqq hello [root@n
要终止这个gawk程序,你必须表明数据流已经结束,
ctrl+D组合键可以在bash中产生一个EOF字符。
默认情况下,gawk会将如下变量分配给它在文本中发现的数据字段:
$0 代表整个文本行 $1 代表文本行的第一个数据段 $n 代表文本行的第n个数据段 $NF 代表文本行的最后一个数据段
gwak中默认的字段分隔符书任意的空白字符。
[root@node1 ~]# df -h | gawk ‘{print $5}‘ 已用% 5% 0% 0% 1% 0% 14% 0% [root@node1 ~]# df -h | gawk ‘{print $NF}‘ 挂载点 / /dev /dev/shm /run /sys/fs/cgroup /boot /run/user/0 [root@node1 ~]# df -h | gawk ‘{print $0}‘ 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 42G 2.1G 40G 5% / devtmpfs 908M 0 908M 0% /dev tmpfs 920M 0 920M 0% /dev/shm tmpfs 920M 8.8M 911M 1% /run tmpfs 920M 0 920M 0% /sys/fs/cgroup /dev/sda1 1014M 142M 873M 14% /boot tmpfs 184M 0 184M 0% /run/user/0
[root@node1 ~]# echo ‘this is sam‘ | gawk ‘{$4="lisi";print $0}‘ this is sam lisi
gawk编辑器允许将程序存储到文件中,然后在命令行中引用。
[root@node1 ljy]# more script.gawk {print $1 "‘s home directory is " $6} [root@node1 ljy]# gawk -F: -f script.gawk /etc/passwd root‘s home directory is /root bin‘s home directory is /bin daemon‘s home directory is /sbin adm‘s home directory is /var/adm lp‘s home directory is /var/spool/lpd sync‘s home directory is /sbin shutdown‘s home directory is /sbin halt‘s home directory is /sbin mail‘s home directory is /var/spool/mail operator‘s home directory is /root games‘s home directory is /usr/games ftp‘s home directory is /var/ftp nobody‘s home directory is / systemd-network‘s home directory is / dbus‘s home directory is / polkitd‘s home directory is / sshd‘s home directory is /var/empty/sshd postfix‘s home directory is /var/spool/postfix chrony‘s home directory is /var/lib/chrony mysql‘s home directory is /var/lib/mysql dockerroot‘s home directory is /var/lib/docker ljy‘s home directory is /home/ljy
标签:opera 文本文件 文本编辑器 gawk ftp 方便 $0 大文件 postfix
原文地址:https://www.cnblogs.com/jinyuanliu/p/10916516.html