如何使用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个重复项
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中打开了输入和输出,我看到了差异,但不知道处理的规则。。。。