加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何在Bash脚本中将字符串作为参数传递给AWK

发布时间:2020-12-14 01:37:54 所属栏目:Linux 来源:网络整理
导读:我有一个文本文件,我想过滤 使用awk.文本文件如下所示: foo 1bar 2bar 0.3bar 100qux 1033 我想在bash脚本中使用awk过滤这些文件. #!/bin/bash#input fileinput=myfile.txt# I need to pass this as parameter# cos later I want to make it more general l
我有一个文本文件,我想过滤
使用awk.文本文件如下所示:

foo 1
bar 2
bar 0.3
bar 100
qux 1033

我想在bash脚本中使用awk过滤这些文件.

#!/bin/bash

#input file
input=myfile.txt

# I need to pass this as parameter
# cos later I want to make it more general like
# coltype=$1
col1type="foo"   

#Filters
awk '$2>0 && $1==$col1type' $input

但不知怎的,它失败了.什么是正确的方法呢?

解决方法

你需要双引号来允许变量插值,这意味着你需要用反斜杠转义其他美元符号,这样就不会插入$1和$2.你还需要围绕“$col1type”的双引号.

awk "$2>0 && $1=="$col1type""

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读