我在一个目录中递归地使用了一个字符串
grep -rwnoH "string" /root/Documents/ | cut -d ":" -f1,2 > input.txt
这给了我如下输出:一个文件input.txt,其内容类似于
/root/Documents/file1.txt:23
/root/Documents/file1.txt:35
/root/Documents/file1.txt:56
/root/Documents/file2.txt:12
/root/Documents/file2.txt:67
/root/Documents/file2.txt:78
/root/Documents/file3.txt:2
/root/Documents/file3.txt:10
我想要这样的东西:
/home/root/Documents/file1.txt:23,35,56
/home/root/Documents/file2.txt:12,67,78
/home/root/Documents/file3.txt:2,10
使用datamash
命令:
datamash -t : -g 1 unique 2
说明:-t
指定字段分隔符,-g 1
表示按第一个字段分组,unique 2
将为每个组显示不同的值。
但是,行号将按字符排序,10将在2之前排序。