首页 > 系统相关 >【linux进阶】shell 命令之 awk | sed命令详解,带实例

【linux进阶】shell 命令之 awk | sed命令详解,带实例

时间:2023-05-22 23:24:11浏览次数:52  
标签:shell 进阶 命令 Sed AWK awk Code Copy

WK 和 Sed 是常用的文本处理工具,可以用来处理文本文件、日志文件等数据。下面将分别介绍 AWK 和 Sed 命令,并提供一些实例。

AWK 命令

AWK 是一种文本处理工具,其名字取自它的三位创始人的姓名:Alfred Aho,Peter Weinberger 和 Brian Kernighan。AWK 命令通常用于从文件或其他输入流中过滤和处理文本行。下面是一些常见的 AWK 命令和示例:

1. awk 的基本语法

Copy Code
awk [-F  field-separator] 'commands' input-file(s)

其中,-F 指定字段分隔符,commands 是需要执行的操作指令,input-file(s) 指定输入文件。

2. 提取某一列

使用 awk 命令可以轻松地从文件的一行中提取出特定的列。例如,我们可以使用以下命令从 /etc/passwd 文件中提取出用户的用户名:

Copy Code
$ awk -F ':' '{ print $1 }' /etc/passwd

在这个命令中,-F ':' 指定了字段分隔符为冒号,{ print $1 } 表示打印每行的第一个字段。

3. 统计行数

我们可以使用 AWK 命令轻松地统计文件的行数。例如:

Copy Code
$ awk 'END { print NR }' /etc/passwd

在这个命令中,NR 表示文件的行数。

4. 过滤行

使用 AWK 命令可以轻松地过滤文件中的行。例如:

Copy Code
$ awk '/root/ { print }' /etc/passwd

在这个命令中,/root/ 表示模式匹配,即匹配所有包含 "root" 的行,并将其打印出来。

5. 格式化输出

AWK 命令可以格式化输出文本。例如:

Copy Code
$ awk -F ':' '{ printf "User: %s\tUID: %s\n", $1, $3 }' /etc/passwd

在这个命令中,printf 命令用于格式化输出打印文本。%s 表示字符串格式,\t 表示制表符,\n 表示换行符。

Sed 命令

Sed(Stream Editor)是一种基于行的流编辑器,是一种非交互式的文本编辑器。Sed 命令通常用于对文本流进行转换和编辑。下面是一些常见的 Sed 命令和示例:

1. sed 的基本语法

Copy Code
sed [选项] 'command' fileName

其中,command 是需要执行的命令,fileName 是需要处理的文件。

2. 替换字符串

使用 Sed 命令可以轻松地替换文件中的字符串。例如:

Copy Code
$ sed 's/old/new/g' file.txt

在这个命令中,/old/new/g 表示将 "old" 替换为 "new",g 表示全局匹配。

3. 插入文本

Sed 命令可以用于在文件的某个位置插入文本。例如:

Copy Code
$ sed '2i This is a new line.' file.txt

在这个命令中,2i 表示在第二行之前插入一行文本。

4. 删除行

我们可以使用 Sed 命令轻松地从文件中删除特定的行。例如:

Copy Code
$ sed '/old/d' file.txt

在这个命令中,/old/d 表示删除文件中包含 "old" 的行。

5. 执行多条命令

Sed 命令可以执行多条命令来编辑文件。例如:

Copy Code
$ sed -e 's/old/new/' -e 's/foo/bar/' file.txt

在这个命令中,使用了 -e 选项来指定需要执行的多个命令。这个例子中,首先将 "old" 替换为 "new",然后将 "foo" 替换为 "bar"。

综上所述,AWK 和 Sed 命令是非常有用的文本处理工具,可以帮助我们完成许多文本处理任务。

标签:shell,进阶,命令,Sed,AWK,awk,Code,Copy
From: https://www.cnblogs.com/xfbk/p/17422028.html

相关文章

  • 【linux进阶】shell之数组字典参数处理详解
    在Shell脚本中,使用数组和字典(关联数组)可以方便地处理参数。以下是它们的介绍:数组Shell中的数组类似于其他编程语言中的数组,它是一个用于存储多个值的变量。在Bash和其他类Unixshell中,可以使用以下语法来创建和操作数组:1.定义数组定义数组需要使用array_name=(value1......
  • fastcopy 参数 命令 大全
    FastCopy.exe[/cmd=命令][/file_src="源文件路径"][/file_dst="目标文件路径"][/srcdir="源目录"][/dstdir="目标目录"][选项...]/cmd-指定命令。(force_copy,move,sync,delete,verify,search,load_job,save_job)/file_src-指定源文件路径。(在force......
  • Shell(Linux)手册
    资料来源Shell全面掌握教程|骏马金龙基础Bash中基本数据类型只有字符串类型echo123Bash中字符串的串联操作,直接将两段数据连接在一起即可,不需要任何操作符。echo"123""456"echo123456变量a=1echo$aa="www.cnblogs.com/mugetsukun"echo$aecho${#a}#获取......
  • 记一次IDEA运行maven命令异常退出,Process finished with exit code -1073741819 (0xC
    系统是基于ARM64的win11,问题根源也不是网传的金山毒霸,出问题的也不是我。起因,我一学弟想在他的微软surfacepro上装IDEA学java,然后给他整了个i586版本的jdk(也就是32位jdk).后面他学习的时候用到tomcat,然后一运行项目啊,发现tomcat是64位,32位的jdk运行不起来,然后把jdk换成了64......
  • 你常用的linux命令有哪些?
    我:您好,我熟悉的Linux命令包括但不限于以下几个方面:文件和目录相关命令:ls、cd、mkdir、rm、cp、mv、chown、chmod等等,这些命令用于文件和目录的管理和操作。进程相关命令:ps、top、kill、nice、nohup等等,这些命令用于查看和管理系统中运行的进程。网络相关命令:ping、netstat、ifc......
  • linux常用命令大全
    pwd显示工作路径shutdown-hnow关闭系统  /halt关闭系统shutdown-rnow重启/reboot重启systemctl stopfirewalld关闭防火墙ipaddr查看ip地址1、cd命令:这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可......
  • Linux命令
    Linux命令passsword命令交互式root用户输入用户密码passwd(用户名)非交互式echo'用户名:用户密码'|chpasswdps命令ps-a//显示用户进程ps-au//显示用户ps-aux//显示终端过滤进程ps-aux|grepsshd排序降序ps-sux--sort-pcpups-sux--sort......
  • pip常用命令
    学python的都知道安装第三方依赖包经常用到pip命令,然后国内pip下载经常比较慢或者根本下载不到,其实可以通过指定国内pip源下载,快多了。通过如下命令安装requests模块:pipinstallrequests 更换PIP源PIP源在国外,速度慢,可以更换为国内源,以下是国内一些常用的PIP源。豆瓣(do......
  • 命令模式(Command Pattern)
    一、模式动机命令模式(CommandPattern)是一种常用的行为型设计模式,它将请求发送者与请求接收者解耦,请求发送者通过命令对象来间接引用接收者,使得系统具有更好的灵活性,可以在不修改现有系统源代码的情况下将相同的发送者对应不同的接收者,也可以将多个命令对象组合成宏命令,还可以在......
  • CentOS7服务器命令行配置静态IP
    cd/etc/sysconfig/network-scripts找到网卡的配置文件 ifcfg-ens33 [ 文件名称可能不一样,基本都是第一个]vimifcfg-ens33 [这里是 root 用户,如果不是在可在vim 前面加 sudo ]打开后的界面[默认未修改]TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="......