bash - 使用 bash 解析两个文件并将字符串连接到一个文件中

标签 bash grep concatenation

我有两个文本文件,我想对其进行解析,然后使用 grep 调用将解析的两行合并到一个文件中。例如:

Foo.txt                  Foo2.txt
*1                        A
 2                        B
*3                        C
 4                        D
*5                        E

我想拥有

FooFinal.txt
 2B
 4D

我正在尝试这样使用 grep 命令

grep -A 1 '*' Foo.txt|grep -v '*'

但是,我不确定如何 grep 这两个文件。

我假设人们会使用 paste 命令来连接,但我不确定。

此外,如果这很难理解,请告诉我,以便我澄清。

谢谢!

最佳答案

修改问题的答案

$ paste -d '' foo.txt foo2.txt | grep -v '^\*'
 2B
 4D

原始问题的答案

$ paste -d '' foo.txt foo2.txt | grep '^\*'
*1A
*3C
*5E

工作原理

  • paste -d '' foo.txt foo2.txt

    这将逐行合并两个文件。选项 -d '' 告诉 paste 直接合并行,中间没有空格。

  • grep '^\*'

    这只会选择那些以 * 开头的行。

    对于修改后的问题,我们添加了 -v 来反转匹配:grep -v '^\*' 删除* 开头。

关于bash - 使用 bash 解析两个文件并将字符串连接到一个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40141795/

相关文章:

linux - 如何在 grep 中显示搜索词

linux - GREP 从文件到另一个文件的行,直到出现某个字符

c - 在自定义 shell 中编写用于输入/输出文件重定向的命令

Linux使用grep打印文件名和前n个字符

bash - 在 bash 脚本中获取外部 PS1 值

Python 3.x - 使用 sum 函数连接列表中的字符串

javascript - JavaScript 上的文本节点有时不会合并

java - 我可以组合多个 concat 吗?

bash - 如何在反引号内传递 bash 变量

regex - 在 bash 中选择字符串中的所有单词对