【问题标题】:how to select specific rows and columns如何选择特定的行和列
【发布时间】:2012-10-06 19:51:43
【问题描述】:

我需要选择例如:

  • 第 7 行的第 2 列。
  • 第 8 行的第 3 列。
  • 第 11 行的第 1 列和第 3 列。

特定文件并将结果放在另一个文件中。

这是我迄今为止尝试过的:

sed -n -e '7p' -e '8p' -e '11p' Old_File | awk '{printf("%s %s %s\n", $2, $3, $1);}' > New_File. 

【问题讨论】:

    标签: linux shell sed awk cut


    【解决方案1】:

    单独使用 awk 就可以完成:

    awk 'NR==7{print $2} NR==8{print $3} NR==11{print $1, $3}' Old_file > New_file
    

    【讨论】:

    • 非常感谢。 awk 是一头野兽,我真的很想把它缠住。
    • NR=8 中有错字。就像它会打印每一行的第三个字段。 NR==8 更好。
    • 谢谢Birei和约翰卫斯理王子。
    【解决方案2】:

    Awk 足以胜任该任务:

    awk '
        FNR == 7 { print $2; next; }
        FNR == 8 { print $3; next; }
        FNR == 11 { print $1, $3; exit; }
    ' input-file
    

    【讨论】:

    • Birei 感谢您编辑我的问题并回答了它。
    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2022-12-03
    相关资源
    最近更新 更多