Awk 如何将文件名附加到每个
我在一个文件中有32个单元格,所以我需要读取文件名并将文件名附加在每一行的开头。我该怎么做 范例Awk 如何将文件名附加到每个,awk,Awk,我在一个文件中有32个单元格,所以我需要读取文件名并将文件名附加在每一行的开头。我该怎么做 范例 MACRO XYZ PIN AB DIRECTION INPUT ; PIN BC DIRECTION INPUT ; MACRO GEN PIN DECSEL_STG2[0] DIRECTION INPUT ; PIN DECSEL_STG1[0] DIRECTION INPUT ; 我需要什么作为输出 MACRO XYZ XYZ PIN AB XYZ DIRECTION INPU
MACRO XYZ
PIN AB
DIRECTION INPUT ;
PIN BC
DIRECTION INPUT ;
MACRO GEN
PIN DECSEL_STG2[0]
DIRECTION INPUT ;
PIN DECSEL_STG1[0]
DIRECTION INPUT ;
我需要什么作为输出
MACRO XYZ
XYZ PIN AB
XYZ DIRECTION INPUT ;
XYZ PIN BC
XYZ DIRECTION INPUT ;
MACRO GEN
GEN PIN DECSEL_STG2[0]
GEN DIRECTION INPUT ;
GEN PIN DECSEL_STG1[0]
GEN DIRECTION INPUT ;
这可以通过一个相对简单的
awk
脚本来完成,如下所示:
pax$ printf "MACRO XYZ\nline 2\nline3\n\nMACRO GEN\nline 6\n\n\n" | awk '
...$ $1=="MACRO"{mac=$2;print;next}$NF>0{print mac" "$0;next}{print}'
MACRO XYZ
XYZ line 2
XYZ line3
.
MACRO GEN
GEN line 6
.
.
(那些<代码> ./COD>字符被我添加只是为了显示空白行在哪里)。 在脚本上展开:
$1 == "MACRO" { # If first word is macro:
mac=$2; # store second word,
print; # print line,
next # and go get next line.
}
$NF > 0 { # Otherwise, if line has some fields:
print mac" "$0; # print stored macro name before line,
next # and go get next line.
}
{ # Otherwise (lines with no fields):
print # just print it as is.
}
akshay siddamal::请在帖子中为您的示例输入/输出使用代码标签。