Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Awk删除行之间的重复字_Awk - Fatal编程技术网

如何使用Awk删除行之间的重复字

如何使用Awk删除行之间的重复字,awk,Awk,如何从文件中的以下给定模式中删除重复单词 文件模式: /bin/sh --promote-module test-c_abc_toy_debug_v2_3_1-1.0.140603101548 --repo-id Test-rhel-appdev-sun-puppet /bin/sh --promote-module test-c_def_debug_v2_3_1-1.0.140603101548 --repo-id Test-rhel-appdev-sol-puppet /bin/sh --

如何从文件中的以下给定模式中删除重复单词

文件模式:

/bin/sh --promote-module test-c_abc_toy_debug_v2_3_1-1.0.140603101548 --repo-id Test-rhel-appdev-sun-puppet
/bin/sh --promote-module test-c_def_debug_v2_3_1-1.0.140603101548 --repo-id Test-rhel-appdev-sol-puppet 
/bin/sh --promote-rpm c-test-hell-debug-231-2.3.1-140603101548.noarch.rpm,c-test-hell-debug-231-2.3.1-140603101548.noarch.rpm --repo-id Test-rhel-6-server-x86_64-appdev-sun 
/bin/sh --promote-rpm c-test-heaven-debug-2.3.1-140603101548.noarch.rpm,c-test-heaven-debug-2.3.1-140603101548.noarch.rpm,c-test-heaven-prod-2.3.1-140603101548.noarch.rpm --repo-id Test-rhel-6-server-x86_64-appdev-sol 
期望输出:

/bin/sh --promote-module test-c_abc_toy_debug_v2_3_1-1.0.140603101548 --repo-id Test-rhel-appdev-sun-puppet
/bin/sh --promote-module test-c_def_debug_v2_3_1-1.0.140603101548 --repo-id Test-rhel-appdev-sol-puppet 
/bin/sh --promote-rpm c-test-hell-debug-231-2.3.1-140603101548.noarch.rpm --repo-id Test-rhel-6-server-x86_64-appdev-sun 
/bin/sh --promote-rpm c-test-heaven-debug-2.3.1-140603101548.noarch.rpm,c-test-heaven-prod-2.3.1-140603101548.noarch.rpm --repo-id Test-rhel-6-server-x86_64-appdev-sol 
请注意:

  • 文件中可以有N行
  • 两行之间可以有N个重复项

我想您的数据在第三列只有重复的单词(当FS='')。否则,这将是错误的。 下面的脚本与GNU awk一起工作

cat your_data_file | awk '
{
    system("echo " $3 "| tr , \"\\n\" | sort | uniq | paste -sd, > tmp ")
    "cat tmp" | getline $3
    close("cat tmp")
    system("rm tmp")
    print $0
}
'

你能突出区别吗?文本太多,无法浏览。。。我可以举一个简单的例子:-)我在vimdiff中打开了输入和输出,我看到了差异,但不知道处理的规则。。。。