从Field AWK打印不同的值

时间:2018-05-07 17:57:20

标签: awk command-prompt

我正在寻找一种在使用AWK的命令提示环境中在字段中打印不同值的方法。

ID     Title     Promotion_ID     Flag
12     Purse       7               Y
24     Wallet      7               Y
709    iPhone      1117            Y
74     Satchel     7               Y
283    Xbox        84              N

理想情况下,我想返回promotion_ids:7,1117,84。 我在谷歌上研究了这个问题,并找到了一些例子:

`cut -f 3 | uniq *filename.ext*`               (returned error)
`awk cut -f 3| uniq *filename.ext*`            (returned error)
`awk cut -d, -f3 *filename.ext* |sort| uniq`   (returned error)

3 个答案:

答案 0 :(得分:2)

解决方案1: 简单awk可能会有所帮助。(以下将删除Input_file的标头)

awk 'FNR>1 && !a[$3]++{print $3}' Input_file

解决方案第二: 如果您需要保留Input_file的标头,那么以下内容可能对您有帮助。

awk 'FNR==1{print;next} !a[$3]++{print $3}'  Input_file

答案 1 :(得分:2)

function my_template( $attr ) {
    ob_start();
    get_template_part( 'partials/modules/content' );
    return ob_get_clean();
}

add_shortcode( 'template', 'my_template' );

function get_products($atts = [], $output = null) { 

    return "
        <div class='shortcode'>
            ".do_shortcode('[template]')."
        </div>
    ";
}

add_shortcode('resources', 'get_products');

输出:

7
84
1117

答案 2 :(得分:0)

使用管道

$ sed 1d file    |    # remove header
  tr -s ' ' '\t' |    # normalize space delimiters to tabs
  cut -f3        |    # isolate the field
  sort -nu            # sort numerically and report unique entries

7
84
1117