使用awk打印部分文件
对于我想要打印的内容,我有几个条件(跳过我想打印的部分中包含的hello,从\k{f}打印到\l{k},从\word{g}打印到\word2{g},打印行开始\hello2,打印\b和\bf之间的部分-有一个问题:in\bf}是不应该打印的部分): 我想为\bf添加一个条件,即它应该在行中单独存在。请问怎么做 file.txt:使用awk打印部分文件,awk,Awk,对于我想要打印的内容,我有几个条件(跳过我想打印的部分中包含的hello,从\k{f}打印到\l{k},从\word{g}打印到\word2{g},打印行开始\hello2,打印\b和\bf之间的部分-有一个问题:in\bf}是不应该打印的部分): 我想为\bf添加一个条件,即它应该在行中单独存在。请问怎么做 file.txt: text text \hello2 456 565 \word{g} s \hello \word2{g} \k{f} fdsfd fgs \l{f} text \b
text
text
\hello2
456
565
\word{g}
s
\hello
\word2{g}
\k{f}
fdsfd
fgs
\l{f}
text
\b
7
\hello
\bf}
text
现在输出:
\word{g}
s
\word2{g}
\k{f}
fdsfd
fgs
\l{f}
\b
7
\bf}
所需输出:
\word{g}
s
\word2{g}
\k{f}
fdsfd
fgs
\l{f}
\b
7
\bf
此问题与以下内容相关:添加一个条件以将\bf}替换为\bf
awk '
/\\hello/{
next
}
/\\k\{f\}|\\word\{g\}|\\b/{
found=1
}
# Fix BF lines
/\\bf}/ { $0 = "\\bf" }
#
found;
/\\l\{f\}|\\word2\{g\}|\\bf/{
found=""
}
/\\hello2/
' file.txt
请您在问题中更清楚地添加条件,例如-->
我想从\k{f}打印到
l{f}`等?由于目前还不清楚。我在问题中添加了它。请不要发布变色龙问题,请参阅。非常感谢,您能帮我在这个脚本中添加一个条件吗?我有行text text\b text text 45\bf
text如何仅打印\b text text 45\bf
有各种可能的输入,这可能会失败,例如,请参阅了解一些@阿尔奇-接受你得到的第一个答案就是假设这是你能得到的最好的答案,因为看到一个已经被接受的答案会使其他人不愿意发布替代方案。另外请注意您能否再帮我一个条件
-请参阅我给您的关于上一个问题的建议:
awk '
/\\hello/{
next
}
/\\k\{f\}|\\word\{g\}|\\b/{
found=1
}
# Fix BF lines
/\\bf}/ { $0 = "\\bf" }
#
found;
/\\l\{f\}|\\word2\{g\}|\\bf/{
found=""
}
/\\hello2/
' file.txt