首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在等号后用引号awk提取数字

在awk中,你可以使用正则表达式来匹配并提取等号后的数字。假设你的数据在一个名为data.txt的文件中,每行格式如下:

代码语言:txt
复制
key1="value1"
key2="value2 with 123 numbers"

你可以使用以下awk命令来提取等号后的数字:

代码语言:txt
复制
awk -F\" '{for(i=2;i<=NF;i+=2){if($i ~ /^[0-9]+$/) print $i}}' data.txt

解释:

  • -F\":设置字段分隔符为双引号,这样awk会将每行按照双引号分割成多个字段。
  • for(i=2;i<=NF;i+=2){...}:从第二个字段开始遍历,每次跳过一个字段(因为双引号之间的内容是我们关心的部分,而它们总是成对出现)。
  • if($i ~ /^[0-9]+$/):检查当前字段是否只包含数字。
  • print $i:如果当前字段只包含数字,则打印出来。

这个命令会输出:

代码语言:txt
复制
value1
123

注意,这个命令假设你的值要么完全是数字,要么不包含任何数字。如果你的数据格式更复杂,你可能需要调整正则表达式来适应不同的情况。

如果你想在等号后面直接提取数字,而不是整个值,你可以稍微修改一下正则表达式:

代码语言:txt
复制
awk -F\" '{for(i=2;i<=NF;i+=2){if($i ~ /^\"[0-9]+\"$/) sub(/^\"|\"$/,"",$i); if($i ~ /^[0-9]+$/) print $i}}' data.txt

这里使用了sub函数来去除双引号。最终输出将是:

代码语言:txt
复制
123

这个命令会忽略那些不包含数字的值。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

shell学习教程(超详细完整)

awk常用统计实例 1.2.6 awk 流程控制 1.2.7 awk 函数 1.2.8 awk 中调用脚本 1.3 sed 文本选取、替换、删除、新增的命令 1.3.1 提取行数据 1.3.2 删除行数据...等号左右两侧不能有空格,可以使用下划线“_”,变量的值如果有空格,需要使用单引号或双引号包括。:“test=“hello world!””。...在单引号中所有的特殊符号,“$”和”(反引号)都没有特殊含义。单引号括起来的都是普通字符,会原样输出 “ ” 双引号。...$将输出“$”符号,而不当做是变量引用。 ---- 单引号和双引号 [root@localhost ~]$ name=sc #定义变量name 的值是sc(就是最正直的人,超哥我了!)...NR 当前awk所处理的行,是总数据的第几行。 FS 用户定义分隔符。awk的默认分隔符是任何空格,如果想要使用其他分隔符(“:”),就需要FS变量定义。 ARGC 命令行参数个数。

6.2K21

Bash Shell

这些变量用户可以直接使用,PATH变量。要提取一个变量的值,需要在变量名前冠以$符号。大括号{}的用法:利用大括号可以减轻工作负担。...Linux中命令行中引号的用法:在命令中使用单引号(')和双引号(")之间的区别如下:单引号~禁止所有的命令行扩展功能。...5628378 bytes uesd across 13 filesawk中的条件语句:条件语句的关键字是if,length是Linux自带的一个程序也叫例程、其功能是取定参数的长度,两个等号==为等号...Shell变量是内存中一个明了名的临时存储区,在其他可以存放数字或字符的等信息。...创建一个别名时要遵守如下规则:1.在等号的两边都不能有任何空格 2.命令字符串中包含任何选项、元字符或空格,命令就必须使用单引号括起来3.在一个别名中的每一个命令必须用分号(:)隔开。

1.5K30
  • 批处理文件for循环_批处理循环语句

    集合: 文件,目录,字符串或者范围数值的集合;可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔 @echo off for %%x...do ( echo %%x content listed as follow: type %%x \n ) pause for /f 是以行为基本操作单位的,类似于Linux awk...三、定点提取:tokens= 数字 指定第几个token输出 Tokens后面一般跟数字,可以是多个数字,但是每一个数字之间用逗号分开,tokens=3,5,7 含义是:提取第3,5,8节字符串 for...7.1 如果以前是用单引号括起来的命令结果作为参数,那么单引号改为后引号“; for –f %%x in (·dir /a-d /b *test*.txt·) do 7.2 如果之前是字符串的话,那么双引号改为单引号...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.6K20

    「薅」52图初探Linux通用知识

    在Linux中,习惯使用Makefile替代makefile,当用户执行configure后,就会在当前目录生成这个makefile文件,然后用户输入make就开始运行。.../hello.sh 执行方法2 /bin/sh hello.sh 变量 变量名和等号之间不能有空格 定义变量注意事项 命名首个字符不能是数字,只能使用英文字母、数字和下划线 不能使用标点符号 不能使用...,也可以不用 单引号引号内容原样输出,不能包含变量,且不能出现单独单引号引号 可以出现转义字符 #!...oh my gad \n " echo -e $str 获取字符串长度 使用# string="qwert" echo $(#string) # 提取子字符串 echo $(string:1:3)...前面单引号里面有一个大括号,单引号里面就是每一行的处理动作。

    1.6K30

    Shell编程快速入门指南

    , world" 运行程序可以作为解释器参数或者作为可执行程序 bash test.sh chmod +x test.sh test.sh 变量 命名 name="huruji" 需要注意的是变量名与等号之间不能有空格...字符串 name="huruji" echo "my name is $name" 字符串可以使用单引号和双引号,单引号中不能包含单引号,即使转义单引号也不次那个,双引号则可以,双引号也可以使用字符串...拼接 name="huruji" hello="my name is ${name}" 获取字符串长度 str="huruji" echo ${#str} #6 提取子字符串 str="huruji"...:退出的状态,0表示没有错误,其他则表示有错误 运算 算数运算 原生bash不支持简单的数学运算,可以借助于其他命令来完成,例如awk和expr,其中expr最常用。...= 关系运算 关系运算只支持数字,不支持字符串,除非字符串的值是数字

    73330

    Perl语言入门系列之一

    写在前面 Perl语言(https://www.perl.org/)最初是为文件体系处理而创作的一种多用途语言,Perl试图填补低级语言(C、C++或汇编语言)和高级语言(shell编程)之间的空白...Perl里面的变量赋值符号为“=”,等号左边为要赋值的变量名,右边为单个字符串、数字或其表达式,也可以是标量变量或其表达式,如下所示: $fred =17; $barney = 'hello'; $fred2...,会被赋值为undef;如果等号右边有多出来的元素,会被忽略掉。...可以提取一定范围内的元素: @array =qw( pebble dino fred barney betty ); @removed= splice @array, 1, 2;   #提取数组array...Perl语言中的哈希是从awk引入,但是进行了改良,使其可以任意大小,并且有良好的算法使得在数据量大时对哈希的访问速率不会变慢。

    1.5K30

    Shell 编程语法基础

    Contents 1 Shell 变量 1.1 使用变量 1.2 只读变量 1.3 删除变量 1.4 变量类型 2 Shell 字符串 2.1 单引号与双引号字符串 2.2 获取字符串长度 2.3 提取子字符串...Shell 字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。...∗相同,但是使用时加引号,并在引号中返回每个参数。”@”用「”」括起来的情况、以”1″”2″ … “$n” 的形式输出所有参数。 $- 显示Shell使用的当前选项,与set命令功能相同。 $?...完整的表达式要被  包含,注意这个字符不是常用的单引号,在 Esc 键下边。 bash 不支持浮点运算,如果需要进行浮点运算,需要借助bc,awk 处理。...数值测试 这是关系运算符,只支持数字,不支持字符串,除非字符串的值是数字

    2.3K10

    一文掌握shell脚本的基本语法

    Bash变量:不区分类型,都是字符串,不允许进行数值计算,除非变量中包含数字。 如果变量的值中间有空格,则使用引号(单引号或双引号均可)扩起来。 5.4 环境变量 会影响用户接口和shell的行为。...目的:提取一些特殊需求的字符。...语法 说明 ${string:position} 在string中从位置position开始提取子串 ${string:position:length} 在string中从位置position开始提取....\} 括号中使用数字,则表示数字前面的RE匹配的次数 括号需使用转义符,否则就是普通的字符 13.1 应用场景 - Linux文本处理:sed、grep、awk、cat、tail、head、tee、...Linux三剑客 --- awk awk ---- ,是报告可视化工具,文本格式化输出工具。主要处理文本文件。

    4K01

    生物信息 awk 简明教程和基本用法

    回到刚刚的例子,demo.vcf 前面的单引号内有一个大括号(注意,这个单引号是必须的,而在包含判断、输出等复杂语句的时候大括号也是必须的),里面是对文件中每一行内容的处理动作,比如这里是:print...samtools view demo.bam | awk '{print $0}' 这里就是先通过 samtools view 将 demo.bam 转为可读的文本,然后用管道("|")把数据传到后面的...内置变量 其实,除了上述通过 $+数字 的形式表示某个字段之外,awk 本身还有一些默认变量。...,用于打印时分隔字段,默认为空格 ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符 OFMT:数字输出的格式,默认为%.6g 内置函数 awk 除了有好用的内置变量之外,也提供了不少好用的内置函数...命令模式: $ awk '条件 动作' 文件名 需要注意的是,条件判断要写在动作之前。

    1.7K50

    一脸懵逼学习Linux的Shell编程

    命令查看那系统变量 系统变量:$HOME、$PWD、$SHELL、$USER等等 显示当前shell中所有变量  :    set 4:定义变量 (1)变量=值 (例如STR=abc) (2)等号两侧不能有空格...(3)变量名称一般习惯为大写 (4)双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意 (5)STR="hello world"   A=9   unset A 撤销变量 A   readonly...表示上一个命令退出的状态   $$ 表示当前进程编号   $0 表示当前脚本名称   $n 表示n位置的输入参数(n代表数字,n>=1)   $#     表示参数的个数,常用于循环   $*和$@ 都表示参数列表...例如 1,20s/old/new/g 18:awk命令 AWK是一种优良的文本处理工具。...实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。

    74860

    这21个不太好搜索其含义的特殊符号你都知道吗?

    |: 管道符,在两个相邻命令之间传递数据;ls | head把ls命令的输出传给head命令,只显示前10个文件/文件夹。....: 通常指代当前目录,./run.sh运行当前目录下的run.sh脚本;multiqc -d . -o multiqc对当前目录下的文件执行multiqc汇总。 ../: 表示上一层目录。...`: 反引号,键盘左上角ESC下的按键。`ls`表示运行ls命令并捕获其输出。 $(ls): 等同于`ls`,表示运行ls命令并捕获其输出。与把命令括在反引号中基本相似,但更推荐使用。...awk中的0, 1: 0表示整行,1表示当前行第一列, ''与"":单引号和双引号通常混用,但双引号中的变量可以获取其值。...&: 把程序放到后台运行 \\: 通常是转义符,把特殊变量转义为普通字符,{HOME}表示获取家目录,\{HOME}就是一个字符串 a="a value": 等号用于bash中变量赋值时,前后都不能有空格

    84930

    Shell编程基础

    作为解释器参数 /bin/sh test.sh /bin/php test.php Shell变量 定义变量的时,变量前不加美元符号,变量名和等号之间不能有空格 name="小明" 使用语句给变量赋值...,也可以使用双引号,也可以不用引号。...获取字符串长度 string="abcd" echo ${#string} #输出 4 提取子字符串 #从第2个字符开始截取4个字符 string="runoob is a great site"...array_name[*]} Shell传递参数 请参考:菜鸟教程参数传递 在执行脚本的时候可以向脚本传递参数,脚本获取参数的格式为:$n Shell基本运算符 原生的bash不支持数学运算,但可以通过 awk...until condition do command done case 例: echo '输入 1 到 4 之间的数字:' echo '你输入的数字为:' read aNum case

    78520

    python基础语法(一)

    1.print函数的用法(打印) 1.1 打印输出 # 打印字符串(中文,英文,数字) print('Hello,Word') # 打印数字 print(123) 1.2 print的三种引号 #...单引号打印字符串文本 print(' 单引号 ') # 双引号可以打印字符串中带单引号的文本 print(" 双引号 ") # 三引号可以打印出换行的文本 print(''' 三引号 ''') 2. python...换行 # 可以使用三引号换行,原样输出文本中的换行,不是自动换行 print('''三引号1 三引号2 三引号3''') # 转义字符 \n ,可以实现自动换行 print('Hello \n Word...'abc' print(str(a)+c) print(a + b) 结果: 80abc 169 7.检验查询数据类型 type() 函数 type函数是无法直接显示出来,需要调用其他函数可以显示print...一个等号和两个等号 a = 1 赋值(变量赋值) a == 1 等于(比较,判断) 对于如上两个,一个等号用于给变量赋值,两个等号用于的场景是比较和判断 10.if嵌套 if条件判断,子条件判断要和母条件判断

    44520

    Shell脚本编程30分钟入门

    变量 定义变量 定义变量时,变量名不加美元符号($),: your_name="qinjx" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。...字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了,哈哈),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。...单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的 单引号字串中不能出现单引号(对单引号使用转义符后也不行) 双引号...echo $greeting $greeting_1 获取字符串长度: string="abcd" echo ${#string} #输出:4 提取子字符串 string="alibaba is...,grep负责找出特定的行,awk能将行拆分成多个字段,sed则可以实现更新插入删除等写操作。

    1.5K20

    这些21个不太好搜索其含义的特殊符号你都知道吗?

    |: 管道符,在两个相邻命令之间传递数据;ls | head把ls命令的输出传给head命令,只显示前10个文件/文件夹。....: 通常指代当前目录,./run.sh运行当前目录下的run.sh脚本;multiqc -d . -o multiqc对当前目录下的文件执行multiqc汇总。 ../: 表示上一层目录。...`: 反引号,键盘左上角ESC下的按键。`ls`表示运行ls命令并捕获其输出。 $(ls): 等同于`ls`,表示运行ls命令并捕获其输出。与把命令括在反引号中基本相似,但更推荐使用。...awk中的0, 1: 0表示整行,1表示当前行第一列, ''与"":单引号和双引号通常混用,但双引号中的变量可以获取其值。 &: 把程序放到后台运行,具体见耗时很长的程序忘加nohup就运行了怎么办?...\\: 通常是转义符,把特殊变量转义为普通字符,{HOME}表示获取家目录,\{HOME}就是一个字符串 a="a value": 等号用于bash中变量赋值时,前后都不能有空格。

    95310

    Linux进阶命令和Shell编程

    例如 20s/old/new/g练习: 2.高级文本命令——awk2.1简介 awk是一种优良的文本处理工具。...其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母,awk 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、...实际上 awk 的确拥有自己的语言:awk 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。...练习: 3.高级文本命令——cut、wc、sort3.1cut命令 cut命令可以从一个文本文件或者文本流中提取文本列,有点类似于java中的split(分割)。...定义规则:变量=值; 等号两侧不能有空格; 变量名称一般习惯为大写; 双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意; 使用unset 变量名 来撤销变量; 使用readonly

    1.7K80
    领券