我有一个文本文件,我想使用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
型
但不知何故失败了。正确的方法是什么?
4条答案
按热度按时间ql3eal8s1#
使用
awk
的-v
选项传递它。这样,你就可以分离出awk变量和shell变量。它更整洁,也没有额外的引号。字符串
bz4sfanl2#
“双引号单引号”
字符串
举例说明:
型
型
Linux测试
g52tjvyc3#
你需要双引号来允许变量插值,这意味着你需要用反斜杠转义其他的美元符号,这样
$1
和$2
就 * 不 * 插值了。你还需要在"$col1type"
周围加上双引号。字符串
yqkkidmi4#
单引号禁止bash中的变量扩展:
字符串