【问题标题】:Passing Arguments in Shell File with awk function [duplicate]使用 awk 函数在 Shell 文件中传递参数 [重复]
【发布时间】:2018-05-13 10:16:42
【问题描述】:

我创建了一个 .csv 文件(由 ; 而不是 , 分隔),其中包括来自 http://www.imdb.com/chart/top 的电影名称、电影排名、电影年份和 imdb 评级。现在我想弄清楚在给定年份之前发行了多少部电影。年份将由第一个 shell 输入参数确定。这是我目前所拥有的:

awk -F "\"*;\"*" '$4 < 1950 {print ;}' result.csv | more | wc -l

我需要将它作为第一个 shell 参数 ($1) 而不是“1950”。使用 $1 而不是 1950 是告诉机器比较第 4 列和第 1 列。我需要将第 4 列与第 1 个参数进行比较。

我需要运行第一个参数为 1950 的文件:

./filename.sh 1950 

【问题讨论】:

    标签: bash shell unix awk parameter-passing


    【解决方案1】:

    您也可以在awk 中进行计数

    awk -F'"*;"*' -v year=$1 '$4<year{count++} END{print count}' file
    

    【讨论】:

      【解决方案2】:
      awk -F '"*;"*' -v d="$1" '$4 < d' result.csv
      

      【讨论】:

        猜你喜欢
        • 2016-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-15
        • 2018-04-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多