tva 0.3.3

Tab-separated Values Assistant
Documentation
Basic tests set 1
-----------------
====Whole line as key===

====[tsv-join --header --filter-file input1.tsv input2.tsv]====
f1	f2	f3	f4	f5
2	bbb	ZZZ	21	28
9	v	vv	97	91
10	GGG	nnn	101	102

====[tsv-join --header -f input1.tsv --key-fields 0 input2.tsv]====
f1	f2	f3	f4	f5
2	bbb	ZZZ	21	28
9	v	vv	97	91
10	GGG	nnn	101	102

====[tsv-join --header -f input1.tsv --key-fields 0 --data-fields 0 input2.tsv]====
f1	f2	f3	f4	f5
2	bbb	ZZZ	21	28
9	v	vv	97	91
10	GGG	nnn	101	102

====[tsv-join --header -f input1.tsv --exclude input2.tsv]====
f1	f2	f3	f4	f5
1	ggg	UUU	101b	15b
3	nnn	GGG	336b	3b
4	vvv	VVV	43b	403b
5	ggg	CCC	5734b	52b
6	ddd	ZZZ	65b	602b
7	ßßß	SSS	7b	771b
8	vv	v	85b	832b
11	v12	PPP	1123b	1167b
12	àbc	P	1209b	1234b
13	ÀSSC		1367b	1331b
14	-1	1	1489b	1421b
15		B	1522b	1567b
16			1634b	1602b
17	0	X	1721b	1703
18	a g  ß	Y	1845b	1801b
19	%tg-0	Z	1931b	1956b
20	bbb	ZZZ	21	28
21	bbb	ZZZ	21	28
22	ddd	ZZZ	65b	602b
23	v12	PPP	1123b	1167b
24	ÀSSC		1367b	1331b
25	0	X	1721b	1703
26	bbb	ZZZ	21	28
27	xa	gg	44	45
28	xb	gh	45	46
29	xc	gi	46	47
30	xd	gj	47	48
31	 	 	sp-sp	2020b
32	xe	gk	48	49

====[tsv-join -f input1_noheader.tsv --exclude input2_noheader.tsv]====
1	ggg	UUU	101b	15b
3	nnn	GGG	336b	3b
4	vvv	VVV	43b	403b
5	ggg	CCC	5734b	52b
6	ddd	ZZZ	65b	602b
7	ßßß	SSS	7b	771b
8	vv	v	85b	832b
11	v12	PPP	1123b	1167b
12	àbc	P	1209b	1234b
13	ÀSSC		1367b	1331b
14	-1	1	1489b	1421b
15		B	1522b	1567b
16			1634b	1602b
17	0	X	1721b	1703
18	a g  ß	Y	1845b	1801b
19	%tg-0	Z	1931b	1956b
20	bbb	ZZZ	21	28
21	bbb	ZZZ	21	28
22	ddd	ZZZ	65b	602b
23	v12	PPP	1123b	1167b
24	ÀSSC		1367b	1331b
25	0	X	1721b	1703
26	bbb	ZZZ	21	28
27	xa	gg	44	45
28	xb	gh	45	46
29	xc	gi	46	47
30	xd	gj	47	48
31	 	 	sp-sp	2020b
32	xe	gk	48	49

====[tsv-join -f input1_noheader.tsv -k 2 -a 5 --allow-duplicate-keys input2_noheader.tsv]====
1	ggg	UUU	101b	15b	52
2	bbb	ZZZ	21	28	28
3	nnn	GGG	336b	3b	 3
4	vvv	VVV	43b	403b	403
5	ggg	CCC	5734b	52b	52
6	ddd	ZZZ	65b	602b	602
7	ßßß	SSS	7b	771b	771
8	vv	v	85b	832b	832
9	v	vv	97	91	91
10	GGG	nnn	101	102	102
11	v12	PPP	1123b	1167b	1167
12	àbc	P	1209b	1234b	1234
13	ÀSSC		1367b	1331b	1331
14	-1	1	1489b	1421b	1421
15		B	1522b	1567b	1602
16			1634b	1602b	1602
17	0	X	1721b	1703	1703
18	a g  ß	Y	1845b	1801b	1801
19	%tg-0	Z	1931b	1956b	1956
20	bbb	ZZZ	21	28	28
21	bbb	ZZZ	21	28	28
22	ddd	ZZZ	65b	602b	602
23	v12	PPP	1123b	1167b	1167
24	ÀSSC		1367b	1331b	1331
25	0	X	1721b	1703	1703
26	bbb	ZZZ	21	28	28
31	 	 	sp-sp	2020b	2020

====Single key append variants===

====[tsv-join --header -f input1.tsv -k 2 -a 5 --allow-duplicate-keys input2.tsv]====
f1	f2	f3	f4	f5	f5
1	ggg	UUU	101b	15b	52
2	bbb	ZZZ	21	28	28
3	nnn	GGG	336b	3b	 3
4	vvv	VVV	43b	403b	403
5	ggg	CCC	5734b	52b	52
6	ddd	ZZZ	65b	602b	602
7	ßßß	SSS	7b	771b	771
8	vv	v	85b	832b	832
9	v	vv	97	91	91
10	GGG	nnn	101	102	102
11	v12	PPP	1123b	1167b	1167
12	àbc	P	1209b	1234b	1234
13	ÀSSC		1367b	1331b	1331
14	-1	1	1489b	1421b	1421
15		B	1522b	1567b	1602
16			1634b	1602b	1602
17	0	X	1721b	1703	1703
18	a g  ß	Y	1845b	1801b	1801
19	%tg-0	Z	1931b	1956b	1956
20	bbb	ZZZ	21	28	28
21	bbb	ZZZ	21	28	28
22	ddd	ZZZ	65b	602b	602
23	v12	PPP	1123b	1167b	1167
24	ÀSSC		1367b	1331b	1331
25	0	X	1721b	1703	1703
26	bbb	ZZZ	21	28	28
31	 	 	sp-sp	2020b	2020