首页 > 系统相关 >linux awk 多分隔符 -F'[ :,=]'

linux awk 多分隔符 -F'[ :,=]'

时间:2023-11-30 12:00:28浏览次数:32  
标签:linux height width awk 720 分隔符 360

摘自:https://blog.csdn.net/whatday/article/details/90415997

awk的-F参数可以指定新的记录分隔符,有些时候可能需求指定多个分隔符,比如下面的内容

width:720 height:360

如果需要取出width和height后面的值的话,一般大家会这样做,即做两次awk操作

# echo "width:720 height:360" | awk '{print $1;print $2}' | awk -F: '{print $2}'
720
360

其实呢,通过在awk中指定两个记录分隔符(空格和:),即可一次性的提取出width和height后面的值,在awk中支持多个记录分隔符的写法如下

# echo "width:720 height:360" | awk -F'[ :]' '{print $2,$4}'
720 360

不过,一般像下面这样写,多一个加号表明将连续出现的记录分隔符当做一个来处理

# echo "width:720 height:360" | awk -F'[ :]+' '{print $2,$4}'
720 360

可以尝试在height前面再增加一个空格,各位可以自己去命令行下尝试下

# echo "width:720  height:360" | awk -F'[ :]' '{print $2,$4}'
720 height
# echo "width:720  height:360" | awk -F'[ :]+' '{print $2,$4}'
720 360

注意:

在awk中,当记录分隔符指定为空字符串时,awk会将多个连续的空白看做一个单一的记录分隔符。此外,awk还会忽略开头和结尾处的空白。

awk支持正则表达式形式的记录分隔符,你可以改成其它的正则表达式来进行测试。上面虽然介绍了awk中使用多个记录分隔符的写法,但是这些记录分隔符都是单个字符,如果记录分隔符是个字符串怎么办呢?

之前说过,awk支持正则表达式形式的记录分隔符,那就写个正则表达式就好,比如要指定分隔符为one和two

# echo "i have two apples and one banana" | awk -F'one|two' '{for(i=1;i<=NF;i++)print i,"="$i}'
1 =i have 
2 = apples and 
3 = banana

 

标签:linux,height,width,awk,720,分隔符,360
From: https://www.cnblogs.com/LiuYanYGZ/p/17867008.html

相关文章

  • Linux部署WebDAV
    1.下载在下面网址下载对应版本的WebDAV服务端https://github.com/hacdias/webdav/releases/tag/v4.2.02.运行与配置将解压后的WebDAV复制到/usr/bin路径下在适当的位置编写配置文件webdav.yaml注意需要使用单引号将用户名、密码和路径括住。#Serverrelatedsettingsadd......
  • Linux文件管理命令
    Linux命令学习仅记录一些常用的案例,不对具体的命令参数进行记录,繁琐且在网络上就能很方便查到。重定向符号符号含义重定向:将数据传到其他地方>输出覆盖重定向>>输出追加重定向<或者<<输入重定向举例1.读取文件内容并覆盖写入另一个文件中。catdy.......
  • Linux下实现文件系统(占坑)
    前提知识:先要摸清楚vfs是啥玩意。实现文件系统有两种方式:直接写LinuxKernelModule,另一种是基于现有fuse内核模块,在用户态实现与fuse内核模块交互,在此基础上还可以实现网络分布式文件系统。https://www.kernel.org/doc/html/next/filesystems/vfs.htmlhttps://wushifublog.co......
  • 使用Rkhunter检测linux渗透
    目前可以发现大多数已知的rootkits和一些嗅探器以及后门程序。它通过执行一系列的测试脚本来确认服务器是否已经感染rootkits,比如检查rootkits使用的基本文件,可执行二进制文件的错误文件权限,检测内核模块等等。使用yum或者apt直接安装rkhunter--checkall可以使用unhide查看......
  • linux系统运维-基础
    Linux发展史与安装一、Linux发展史1、Linux前身-Unix1968年 Multics项目MIT、Bell实验室、美国通用电气有限公司走到了一起,致力于开发Multics项目。到后期由于开发进度不是很好,MIT和Bell实验室相继离开这个项目的开发,最终导致项目搁浅。 1970年(Unix元年,时间戳)  Unix诞......
  • linux命令使用方法(不断更新)
    find/-inametest    #查找所有/目录下文件名为test的文件find/type-f-mtime+30-name"文件名或表达式"   #查找/目录下类型为文件时间为30天以前-name“”中的文件find/type-d-mtime+30    #查找/目录下类型为目录时间为30天以前的目录find/ty......
  • Linux提权3
    本次学习Linux计划任务提权实验原理 实验过程首先攻击机登录普通用户 查看计划任务情况可以看到cleanup.py脚本每一分钟执行一次脚本文件位置/home/cleanup/1.sh查看脚本权限,任意用户都有读写和执行权限这个时候想办法修改脚本文件内容,通过脚本的定时任务执行恶意操......
  • linux查看全局变量
    linux查看全局变量 在Linux环境中,您可以使用printenv或者echo$VAR_NAME命令来查看全局变量。以下是一些示例:使用printenv命令:bashprintenv 这会显示所有的环境变量,包括全局变量。使用echo$VAR_NAME命令:例如,如果您想查看PATH变量的值,可以执行:bashe......
  • linux的系统服务文件解释
    服务文件解释[Unit]Description=ApacheKafkaserver(broker)After=network.targetzookeeper.service[Service]Type=simpleEnvironment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/jdk-11/bin"User=rootGroup=rootExecStart=/us......
  • Linux用户管理回顾
    在Linux系统中,用户管理是系统管理者的一项重要任务。正确管理用户账户可以确保系统的安全性和稳定性。本文将介绍Linux系统中的用户管理相关指令和操作方法。添加用户要在Linux系统中添加新用户,可以使用useradd命令。以下是添加用户的示例:bash复制$useraddusername此命令将在......