我使用递归地在目录中提取字符串
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
答案 0 :(得分:0)
使用datamash
命令:
datamash -t : -g 1 unique 2
说明:-t
指定字段分隔符,-g 1
表示按第一字段分组,而unique 2
将为每个组显示不同的值。
但是,行号将按字符排序,而10将排在2之前。