【发布时间】:2013-09-19 03:42:15
【问题描述】:
我有两个文本文件。 text-file-1 包含字符串(每行一个字符串);
C 010
C 020
C 024
.
.
.
Text-file-2 包含以下格式的数据;
C 005 Carbon
D Carbon 1
D Carbon 2
D Carbon 3
D Carbon 4
C 010 Hydrogen
D Hydrogen 1
D Hydrogen 2
C 017 Oxygen
D Oxygen 1
C 020 Nitrogen
D Nitrogen 1
D Nitrogen 2
D Nitrogen 3
C 024 Sulphur
D Sulphur 1
D Sulphur 2
.
.
.
Text-file-1 包含 30 行,但 Text-file-2 包含大量数据,并且格式与我提到的相同。我可以使用以下命令对 Text-file-1 中的 Text-file-2 中的文本进行 grep;
awk 'NR==FNR { A[$2]=1; next }; A[$2]' Text-file-1 Text-file-2 > filename
此脚本的输出
C 010 Hydrogen
C 020 Nitrogen
C 024 Sulphur
.
.
.
我想要的输出是;
C 010 Hydrogen
D Hydrogen 1
D Hydrogen 2
C 020 Nitrogen
D Nitrogen 1
D Nitrogen 2
D Nitrogen 3
C 024 Sulphur
D Sulphur 1
D Sulphur 2
.
.
.
现在,我需要这个命令的扩展,它可以打印所有行(以“D”开头),包括这一行之后。 Text-file-2 中的所有行都以字母(C 或 D)开头。这封信对我没有用,但我保留了它。请帮忙。
【问题讨论】:
-
你有没有尝试过?如果是这样,请显示代码并说明它是如何工作的。
-
不。其实我是编程新手。对于这个问题,我google了很多网站,都没有找到解决办法。
-
@MuhammadSufian 那么你的目标是先学习编程,然后用你的技能来攻克这个问题。这里没有人有兴趣为您编写代码。我建议你从Perl Tutorial Hub开始。
-
欧基弗里多。实际上这是我在 Stackoverflow 上的第一篇文章。我会在星期一尝试我的 linux 命令的基本技能。