【linux进阶】shell 命令之 awk | sed命令详解,带实例
WK 和 Sed 是常用的文本处理工具,可以用来处理文本文件、日志文件等数据。下面将分别介绍 AWK 和 Sed 命令,并提供一些实例。
AWK 命令
AWK 是一种文本处理工具,其名字取自它的三位创始人的姓名:Alfred Aho,Peter Weinberger 和 Brian Kernighan。AWK 命令通常用于从文件或其他输入流中过滤和处理文本行。下面是一些常见的 AWK 命令和示例:
1. awk 的基本语法
awk [-F field-separator] 'commands' input-file(s)
其中,-F
指定字段分隔符,commands
是需要执行的操作指令,input-file(s)
指定输入文件。
2. 提取某一列
使用 awk 命令可以轻松地从文件的一行中提取出特定的列。例如,我们可以使用以下命令从 /etc/passwd 文件中提取出用户的用户名:
$ awk -F ':' '{ print $1 }' /etc/passwd
在这个命令中,-F ':'
指定了字段分隔符为冒号,{ print $1 }
表示打印每行的第一个字段。
3. 统计行数
我们可以使用 AWK 命令轻松地统计文件的行数。例如:
$ awk 'END { print NR }' /etc/passwd
在这个命令中,NR
表示文件的行数。
4. 过滤行
使用 AWK 命令可以轻松地过滤文件中的行。例如:
$ awk '/root/ { print }' /etc/passwd
在这个命令中,/root/
表示模式匹配,即匹配所有包含 "root" 的行,并将其打印出来。
5. 格式化输出
AWK 命令可以格式化输出文本。例如:
$ awk -F ':' '{ printf "User: %s\tUID: %s\n", $1, $3 }' /etc/passwd
在这个命令中,printf
命令用于格式化输出打印文本。%s
表示字符串格式,\t
表示制表符,\n
表示换行符。
Sed 命令
Sed(Stream Editor)是一种基于行的流编辑器,是一种非交互式的文本编辑器。Sed 命令通常用于对文本流进行转换和编辑。下面是一些常见的 Sed 命令和示例:
1. sed 的基本语法
sed [选项] 'command' fileName
其中,command
是需要执行的命令,fileName
是需要处理的文件。
2. 替换字符串
使用 Sed 命令可以轻松地替换文件中的字符串。例如:
$ sed 's/old/new/g' file.txt
在这个命令中,/old/new/g
表示将 "old" 替换为 "new",g
表示全局匹配。
3. 插入文本
Sed 命令可以用于在文件的某个位置插入文本。例如:
$ sed '2i This is a new line.' file.txt
在这个命令中,2i
表示在第二行之前插入一行文本。
4. 删除行
我们可以使用 Sed 命令轻松地从文件中删除特定的行。例如:
$ sed '/old/d' file.txt
在这个命令中,/old/d
表示删除文件中包含 "old" 的行。
5. 执行多条命令
Sed 命令可以执行多条命令来编辑文件。例如:
$ sed -e 's/old/new/' -e 's/foo/bar/' file.txt
在这个命令中,使用了 -e
选项来指定需要执行的多个命令。这个例子中,首先将 "old" 替换为 "new",然后将 "foo" 替换为 "bar"。
综上所述,AWK 和 Sed 命令是非常有用的文本处理工具,可以帮助我们完成许多文本处理任务。
本文来自博客园,作者:橘子偏爱橙子,转载请注明原文链接:https://www.cnblogs.com/xfbk/p/17422028.html