我需要合并以下 2 个文件:
表格 REF-IO HEAD-IO DIFF-IO
测试 200 500 -300
考试 2 3 -1
期末考试2 1 1
邮件 4 2 2
总计 208 506 -298
表格 REF-SELECT HEAD-SELECT DIFF-SELECT
test 5 7 -2
game 3 3 0
Exam 0 7 -7
final 12 6 6
TOTAL 20 23 -3
合并后的文件应如下所示:
表 REF-IO HEAD-IO DIFF-IO REF-SELECT HEAD-SELECT DIFF-SELECT
测试 200 500 -300 5 7 -2
考试 2 3 -1 0 7 -7
最终 2 1 1 …
我有 3 个这样的 csv 文件。
CSV 1:
1,aaaa,bbb,2014-04-01
2,qwe,rty,2014-04-03
3,zxc,cvb,2014-04-05
Run Code Online (Sandbox Code Playgroud)
CSV 2:
2,j,k,2014-04-01
3,a,s,2014-04-04
5,g,h,2014-04-08
Run Code Online (Sandbox Code Playgroud)
CSV 3:
2,a,s,d,f,g,2014-04-01
3,d,f,g,h,j,2014-04-06
4,c,v,b,n,m,2014-04-09
Run Code Online (Sandbox Code Playgroud)
如何按第一列合并所有内容?
SELECT * FROM csv1
JOIN csv2 where csv1[0]= csv2[0] --[0] is the position of the first column
Run Code Online (Sandbox Code Playgroud)
输出应该是:
csv1 fields | csv2 fields | csv4 fields
2,qwe,rty,2014-04-03,a,s,2014-04-04,a,s,d,f,g,2014-04-01
3,zxc,cvb,2014-04-05,g,h,2014-04-08,d,f,g,h,j,2014-04-06
Run Code Online (Sandbox Code Playgroud) 我有 2 个文本文件
文件_1:
14595|Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5
14649|Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5
Run Code Online (Sandbox Code Playgroud)
文件_2:
14595|Address xx|Info 6|Info 7|Info 8
14649|Address xxxz|Info 6|Info 7|Info 8
Run Code Online (Sandbox Code Playgroud)
我想要一种方法来查找 file_1 第一列(数字列)并在 file_2 中找到它的匹配项,并将两个文件的信息合并到 file_3 中,而没有数字键字段,所以输出就像
文件_3
Age 35|Salary xx|Position ax|2013|Info 1|Info 2|Info 3|Info 4|Info 5|Address xx|Info 6|Info 7|Info 8
Age 30|Salary xx|Position az|2015|Info 1|Info 2|Info 3|Info 4|Info 5|Address xxxz|Info 6|Info 7|Info 8
Run Code Online (Sandbox Code Playgroud) 我有一个 file1.txt
USA Joe 123.123.123
Russia Marry 458.786.892
Canada Greg 151.844.165
Latvia Grace 125.895.688
Run Code Online (Sandbox Code Playgroud)
和 file2.txt
1 123.123.123
2 151.844.165
3 465.879.515
Run Code Online (Sandbox Code Playgroud)
我想创建一个新文件result.txt,在那里我只打印那些地址 (xxx.xxx.xxx) 都在 file1 和 file2 中的行,所以我的结果应该是
USA Joe 123.123.123
Canada Greg 151.844.165
Run Code Online (Sandbox Code Playgroud)
我需要使用 awk,但是我需要如何将它用于两个文件?
例如,我有 2 个文件具有以下信息:
文件#1:
12
13
14
15
Run Code Online (Sandbox Code Playgroud)
文件#2:
12 1
13 2
14 2
15 6
16 7
17 8
Run Code Online (Sandbox Code Playgroud)
输出文件:
1
2
2
6
Run Code Online (Sandbox Code Playgroud)
在输出文件中,我只需要与文件 #1 的第一列匹配的文件 #2 的第二列值。在 Linux 中是否有任何实用功能?我是 shell 脚本的新手,有人可以帮我吗?
file1:
abc|123|check
def|456|map
ijk|789|globe
lmn|101112|equator
Run Code Online (Sandbox Code Playgroud)
file2:
abc|123|check
def|456|map
ijk|789|equator
lmn|101112|globe
Run Code Online (Sandbox Code Playgroud)
EXPECTED OUTPUT:
ijk|789|equator
lmn|101112|globe
Run Code Online (Sandbox Code Playgroud)
Current awk script:
awk 'BEGIN{OFS=FS="|"} NR==FNR{a[$3]=$3;next}!($3 in a)' file1 file2
This does comparison based on array content. How to compare line by line and printing only that results.
我有 2 个文件,内容如下:
File1.txt
A 1
B 2
C 5
Z 3
File2.txt
A 4
B 7
C 10
D 11
Run Code Online (Sandbox Code Playgroud)
我想做的是创建类似的东西
A 1 4
B 2 7
C 5 10
D - 11
Z 3 -
Run Code Online (Sandbox Code Playgroud)
有没有这样做的实用程序?如果不是怎么能做到这一点?使用find和awk或什么?
我正在获取一个 wifi 日志,其中列出了 MAC 地址。我想了解连接到我的路由器的设备的 MAC 供应商/制造商。我有 2 个文件,其中一个 MAC 已经“grep”以显示 MAC 的前 3 个八位字节。另一个文件有一个供应商列表和他们发布的前 3 个八位字节。现在的问题是第一个文件有多个重复项,我仍然可以在第二个文件中匹配,但它不会显示第一个文件中有多少。以下是示例。
文本文件
00:10:f6
00:10:f6
03:48:03
8f:91:34
93:ab:c6
Run Code Online (Sandbox Code Playgroud)
供应商.xml
03:48:03 vendor="apple"
00:10:f6 vendor="micro"
8f:91:34 vendor="dell"
93:ab:c6 vendor="sun"
23:8b:23 vendor="acer"
00:73:ad vendor="asus"
Run Code Online (Sandbox Code Playgroud)
这是我运行以下代码时得到的结果:
cat text.txt vendor.xml |grep -Ff text.txt vendor.xml |sort -u |uniq -c >> final.txt
Run Code Online (Sandbox Code Playgroud)
最终版.txt
1 00:10:f6 vendor="micro"
1 03:48:03 vendor="apple"
1 8f:91:34 vendor="dell"
1 93:ab:c6 vendor="sun"
Run Code Online (Sandbox Code Playgroud)
结果应该是:
2 00:10:f6 vendor="micro"
1 03:48:03 vendor="apple"
1 8f:91:34 vendor="dell"
1 93:ab:c6 vendor="sun"
Run Code Online (Sandbox Code Playgroud)
有没有我没有想到的标志或选项?
我需要合并我拥有的两个文件,但在合并它们之前我首先需要它进行匹配。这是我的第一个文件,其中包含 100 万行。
abcde
fghi
jklmn
opqrs
123456
0000
Run Code Online (Sandbox Code Playgroud)
第二个文件包含 300 万行,但仍有一些行具有第一个文件中的字符串。
543123:fdfdss
dfskld:533fg
abcde:1234
fdskls:fkdfs
gfdkls:flfds
0000:5432
fdsk:saakl
Run Code Online (Sandbox Code Playgroud)
输出:
abcde:1234
fghi
jklmn
opqrs
123456
0000:5432
Run Code Online (Sandbox Code Playgroud)
我希望输出为 file1:file2 但前提是它与 file2 的第一列和 file1 中的字符串匹配。我不想打乱排序格式,我希望它按此顺序排列,我想保留 file1 字符串但只添加匹配的字符串。
文件 1:
a, 1
b, 5
c, 2
f, 7
Run Code Online (Sandbox Code Playgroud)
文件2:
a, 2
f, 9
g, 3
Run Code Online (Sandbox Code Playgroud)
我想根据第 1 列加入文件 1 和文件 2 并获得文件 3,如下所示。
文件 3:
a, 1, 2
b, 5, -
c, 2, -
f, 7, 9
g, -, 3
Run Code Online (Sandbox Code Playgroud)
合并匹配值并保留每个文件中的特定值