使用模式打印该行,并找出两个文件中模式之间的差异

时间:2016-02-24 06:56:58

标签: regex awk sed

我有两个文件: -

(注意,组名将始终具有:最后)

File1中

Group1:
user1
user2
Group2:
User1
User2
User3

文件2

Group1:
user1
Group2:
User1
User2
User3
User4

组名和用户名不是静态的,可以更改。我希望能够在一个输出文件中打印每个组的添加内容,并从另一个输出文件中的每个组中删除。输出文件应如下所示: -

addoutput file

Group1:
Group2:
User4

deleteoutput file

Group1:
User2
Group2:

基本上,文件1是先前在组1和组2中可用的用户列表,文件2是在最后审核组成员资格时从group1和组2中添加或删除的用户列表。

添加输出文件应显示添加到任一组的任何成员以及组名称和删除输出文件应显示从组中删除的任何成员以及组名称。

这可以通过sed或awk来完成吗?

1 个答案:

答案 0 :(得分:0)

既然你问,我建议你使用comm。如果你有comm那么任务就会非常简单。使用awk,您可以按以下步骤操作:

(1)使用groupname: username 转换文件,使每行的格式为:

comm -23 FILE1 FILE2

(2)对这两个文件进行排序并使用awk来计算FILE1 - FILE2(对于其他方式也类似)

3)使用var mysqlInfo; mysqlInfo = { host : https//www.random.com, port : '2332', user : 'test@localhost', password : '32323232', database : 'test_installation', charset : 'utf8_general_ci' }; 恢复到所需的格式。