按enter键后未运行awk命令
我有一个类似于以下内容的文本文件:按enter键后未运行awk命令,awk,Awk,我有一个类似于以下内容的文本文件: Question: What is.... ? Answer: Question: What is.... ? Answer: awk '{ for (i = 1; i <= NF; i++){ if ($i ~ /Answer:/) count++ if (count == 2) sub(/Answer:/,"A's",$i) } }1' lab02.txt > tmp &am
Question: What is.... ?
Answer:
Question: What is.... ?
Answer:
awk '{
for (i = 1; i <= NF; i++){
if ($i ~ /Answer:/)
count++
if (count == 2)
sub(/Answer:/,"A's",$i)
}
}1' lab02.txt > tmp && mv tmp lab02.txt
我目前正在尝试在第二个“Answer”
之后插入一些文本。我目前正在使用以下工具:
Question: What is.... ?
Answer:
Question: What is.... ?
Answer:
awk '{
for (i = 1; i <= NF; i++){
if ($i ~ /Answer:/)
count++
if (count == 2)
sub(/Answer:/,"A's",$i)
}
}1' lab02.txt > tmp && mv tmp lab02.txt
awk'{
对于(i=1;i),在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。
它将}1'
末尾的'
视为开始一个未完成的新字符串
您需要从shell中转义awk internal“
用<代码> > '/c>替换.< /p> 在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。
它将}1'
末尾的'
视为开始一个未完成的新字符串
您需要从shell中转义awk internal“
用<代码> > '/c>替换.< /p> 在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。
它将}1'
末尾的'
视为开始一个未完成的新字符串
您需要从shell中转义awk internal“
用<代码> > '/c>替换.< /p> 在AWK命令的中间有一个撇号,那就是抛出shell对命令的解析。
它将}1'
末尾的'
视为开始一个未完成的新字符串
您需要从shell中转义awk internal“
将其替换为\''
@EtanReisner回答了您的具体问题,但听起来您的脚本应该写成:
$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?
Answer:
Question: What is.... ?
A's
@EtanReisner回答了您的具体问题,但听起来您的脚本应该写为:
$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?
Answer:
Question: What is.... ?
A's
@EtanReisner回答了您的具体问题,但听起来您的脚本应该写为:
$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?
Answer:
Question: What is.... ?
A's
@EtanReisner回答了您的具体问题,但听起来您的脚本应该写为:
$ awk '/Answer:/{ if (++cnt==2) $0 = "A\047s" } 1' file
Question: What is.... ?
Answer:
Question: What is.... ?
A's
1
是一种awk习惯用法。任何真正的模式都会运行默认操作,即打印行。1
是一种真正的模式。它与上一次结束时的}
抱在一起是出于一般的懒惰(好的一种)还有空间方面的考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里来的,它们谈到awk脚本的形式是pattern{action}
,但是它们都是错的。awk脚本的形式是condition{action}
,还有一个“pattern”(像BEGIN
这样的关键字或要与$0
进行比较的RE)只是一个可能的条件。1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。1
是一个awk习语。任何真实的模式都运行默认操作,即打印行。1
是一个真实的模式。它与t相拥他之前的结束语是出于一般的懒惰(好的一种)和空间考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里,他们说awk脚本有形式模式{action}
,但是他们都错了。awk脚本有形式条件{action}
和“pattern”(像BEGIN
这样的关键字或要与$0
进行比较的RE)只是一个可能的条件。1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。1
是一个awk习语。任何真实的模式都运行默认操作,即打印行。1
是一个真实的模式。它与t相拥他之前的结束语是出于一般的懒惰(好的一种)和空间考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里,他们说awk脚本有形式模式{action}
,但是他们都错了。awk脚本有形式条件{action}
和“pattern”(像BEGIN
这样的关键字或要与$0
进行比较的RE)只是一个可能的条件。1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。1
是一个awk习语。任何真实的模式都运行默认操作,即打印行。1
是一个真实的模式。它与t相拥他之前的结束语是出于一般的懒惰(好的一种)和空间考虑。我知道有很多看起来非常官方的文档,包括从发明这个工具的人那里,他们说awk脚本有形式模式{action}
,但是他们都错了。awk脚本有形式条件{action}
和“pattern”(像BEGIN
这样的关键字或要与$0
进行比较的RE)只是一个可能的条件。1
,或任何其他非零数,在条件上下文中,在awk中是一个真实的条件,就像在C和大多数其他语言中一样。我认为这可能是问题所在。我尝试使用“\”进行转义,但没有成功。谢谢Etan:)@Giri正确。您不能在单引号字符串中转义单引号。单引号不支持任何类型的转义。因此,如果您需要转义,请使用\047
,例如打印“there\047s one!”
我想这可能是问题所在。我尝试使用“\”转义,但没有效果。谢谢Etan:)@Giri正确。不能在单引号字符串中转义单引号。单引号不支持任何类型的转义。因此,如果需要转义,请使用\047
,例如。