regex - 如何在 practice.txt 文件中只获取包含 'test' 字的文件并将数据合并到

标签 regex linux

猫咪练习.txt test_0909_3434 test_8838 test_case_5656_5433 case_4333_3211 note_4433_2212

practice.txt 文件包含更多文件。 所需输出:

test_0909_3434 test_8838

这些测试文件包含一些数据,因此我需要将这两个文件数据合并为一个最终文件。

test_0909_3434 文件包含:

id name

1 hh

2 ii

test_8838 文件包含:

id name

2 ii

3 gg

4 kk

输出文件的最终输出:mergedfile.txt 将如下所示:

id name

1 hh

2 ii

3 gg

4 kk

我们也需要像上面的mergedfile.txt一样删除冗余数据

最佳答案

1) 简单化(两个输入文件中的数据“有序”且“格式正确”):

猫 f1 f2 |排序-u > f3

2) 更复杂(不是“按顺序”也不是“格式良好”)。使用正则表达式。

从两个输入文件中读取记录。假设输入记录称为“x”。

if [[ "${x}" =~ ^[[:space:]]*([[:digit:]]+)[[:space:]]+(.*)$ ]]; then
    d="${BASH_REMATCH[1]}"
    s="${BASH_REMATCH[2]}"
    echo "d == $d, s == $s"
fi

aa["${d}"]="${k}"

其中 aa 是 Bash 关联数组(在 Bash >= 4x 中可用)。

声明-A aa=()

这假设第一个字段是一个整数(和一个键)。 key是否唯一,你可以做相应的处理。

如果比这更复杂,请考虑使用 Perl。

关于regex - 如何在 practice.txt 文件中只获取包含 'test' 字的文件并将数据合并到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45718034/

相关文章:

java - 正则表达式不从 html 标签中提取图像 url

python - 提取由子字符串分隔的组

javascript - 仅用于数字和连字符的正则表达式

javascript - 在 JavaScript 中使用正则表达式匹配 "$"

c - Linux : When sending Ethernet frames the ethertype is being re-written

python - 如何找到两个文件之间的时间戳差异

javascript - 从 Javascript 中的推文中删除 'RT @name'

linux - GREP 查找最小和最大数

c - Linux下实现窗口函数InterlockedExchange

linux - 通过匹配从另一个文件获得的模式替换文件中的字符串