一个AWK代码中的几个命令

时间:2014-09-27 22:42:43

标签: bash awk

我想知道如何写一个AWK代码:

  1. \n_ _ _取代;_(每个_是一个空格)
  2. 查找图案并仅打印具有该图案的所有行
  3. 到目前为止,我所做的是:

    awk -vRS="\n   " -vORS="; " '1' '/^C1 / {print $0}' file
    

    输入

    AU Luna, J
       Plata, M
    C1 [Luna, Joaquin; Gonzalez, Mauricio] Inst Nacl Cancerol, Bogota, Colombia.
       [Plata, Manuel] Fdn Cardioinfantil, Bogota, Colombia.
    

    输出

    C1 [Luna, Joaquin; Gonzalez, Mauricio] Inst Nacl Cancerol, Bogota, Colombia.; [Plata, Manuel] Fdn Cardioinfantil, Bogota, Colombia.
    

2 个答案:

答案 0 :(得分:1)

说你的文件是:

aaa
bbb
ccc
ddd

你想要一个awk命令:

  1. aaa替换为bbb
  2. 打印与正则表达式[bc]
  3. 匹配的所有行

    这样的事情可行:

    gawk '{ gsub(/aaa/, "bbb") } /[bc]/ { print }' file
    

答案 1 :(得分:1)

$ awk 'sub(/^ +/,"; "){if (p ~ /^C1/) print p $0} {p=$0}' file
C1 [Luna, Joaquin; Gonzalez, Mauricio] Inst Nacl Cancerol, Bogota, Colombia.; [Plata, Manuel] Fdn Cardioinfantil, Bogota, Colombia.