【问题标题】:AWK Replace pattern at specific line trough passing variablesAWK 在特定线槽通过变量替换模式
【发布时间】:2012-06-03 04:19:52
【问题描述】:

我正在尝试将两个变量传递给 awk,以便在特定行 用空格 (" ") 替换单词 (-v var1) (-v var2)。当我运行它时,我想要的行没有被替换。

我的第一个方法是:

palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub("var2"," ")}{print }' Countries > tmp

关于文件“Countries”,内容为:

usa
usa
colombia
spain
betina

【问题讨论】:

  • 在描述中,您说var1 是单词,var2 是行,但在命令中您使用它们的方式相反。
  • 与其显式编写{print} 的动作,不如使用1 的模式更为惯用。例如'NR==var1 {sub("var2"," ")} 1'

标签: variables awk line


【解决方案1】:

删除 var2 周围的引号,你应该会很好。

palabra=betina; i=5 ; awk -v var1="$i" -v var2="$palabra" 'NR==var1 {sub(var2," ")}{print }' file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    相关资源
    最近更新 更多