Linux 需要文件过滤方面的帮助吗

Linux 需要文件过滤方面的帮助吗,linux,shell,unix,scripting,Linux,Shell,Unix,Scripting,我在文件a中有一个主机名列表,在文件B中还有一个包含完整主机名详细信息的文件。我想删除所有与文件B中的主机a匹配的主机。是否有简短的脚本来执行此操作?请让我知道 例: 在A和B中,服务器1和服务器4是匹配的,所以我需要一个脚本,它从文件B中删除所有匹配的服务器名称。在grep命令上调整正则表达式,以确保仅匹配详细信息文件上的主机名: cat file_with_hostnames | while read hname; do grep -q "$hname" file_with_host_det

我在文件a中有一个主机名列表,在文件B中还有一个包含完整主机名详细信息的文件。我想删除所有与文件B中的主机a匹配的主机。是否有简短的脚本来执行此操作?请让我知道

例:


在A和B中,服务器1和服务器4是匹配的,所以我需要一个脚本,它从文件B中删除所有匹配的服务器名称。在grep命令上调整正则表达式,以确保仅匹配详细信息文件上的主机名:

cat file_with_hostnames | while read hname; do grep -q "$hname" file_with_host_details || echo $hname; done

可能是这样的

diff A B | grep "[>|<]" > temp_op
cat temp_op | grep ">" | cut -f2 -d " " > new_B 
cat temp_op | grep "<" | cut -f2 -d " " > new_A 
diff A B | grep”[>|“| cut-f2-d”>新的
cat临时工操作“grep”
注1:这需要GNU
comm
。 注2:
comm(1)
要求对文件进行排序。
注3:“|”字符的奇怪之处在于
comm
不允许使用空的
输出分隔符。请仔细想想。

请更具体一点。显示文件和预期输出的示例。您所说的“哪些文件中的主机与B文件中的主机匹配”是什么意思“?例如:cat A服务器1服务器2服务器3服务器4 cat B服务器700服务器1服务器300服务器4所以在A和B中,服务器1和服务器4是匹配的,所以我需要一个脚本,它删除两个文件中所有匹配的服务器编辑您的问题以包括此信息。使用
{}”
在用鼠标选择文本后,编辑框左上角的工具将其设置为正确的格式。祝您好运。您好,感谢您的回复…请检查下面的示例,并告诉我您是否对以下内容有建议…例如:cat A服务器1服务器2服务器3服务器4 cat B服务器700服务器1服务器300服务器4,这里是A和B、服务器1和服务器4是匹配的,因此我需要一个脚本,它将从文件中删除所有匹配的服务器名称非常感谢,对于答案,请您告诉我[>| diff以>(文件1中的数据不匹配)和<(文件2中的数据不匹配)的形式提供输出,我们需要文件中的数据,因此我们使用grep选择它。[>|在其中。在linux中尝试diff命令
diff A B | grep "[>|<]" > temp_op
cat temp_op | grep ">" | cut -f2 -d " " > new_B 
cat temp_op | grep "<" | cut -f2 -d " " > new_A 
comm --output-delimiter="|" -3 A B|sed 's/^|//'