我知道如何击败awk,gred,sed但不知道除了第一场比赛之外如何击球。我在doc中搜索但无法找到正确的命令来执行此操作。 我有一个这样的简单文件:
tongtha AL_Vcs abcdef
tongtha AL_Vcs abcdef
tongtha AL_Vcs abcdef
tuanngu AL_Ptime HEO
tuanngu AL_Ptime HEO
vuau AL_Ptime E2x
vuau AL_verdi_b E2x
vuau AL_TShell EU2HL
这是我的愿望
tongtha AL_Vcs abcdef
AL_Vcs abcdef
AL_Vcs abcdef
tuanngu AL_Ptime HEO
AL_Ptime HEO
vuau AL_Ptime E2x
AL_verdi_b E2x
AL_TShell EU2HL
如果我能以2美元的价格将其分成2美元,那就更好了:
tongtha AL_Vcs abcdef
abcdef
abcdef
tuanngu AL_Ptime HEO
HEO
vuau AL_Ptime E2x
AL_verdi_b E2x
AL_TShell EU2HL
答案 0 :(得分:1)
这可能适合你(GNU sed):
sed -r ':a;N;/^(\S+\s+\S+\s+)(.*\n)\1/{:b;s//\1\n\2\1\n/;h;s/\n.*//;s/./ /g;H;g;s/\n(.*\n).*\n(.*)\n(.*)$/\1\3\2/;ba};/^(\S+\s+)(.*\n)\1/bb;$b;/\n\s*$/b;h;s/\n[^\n]*$//p;g;s/.*\n//;ba' file
sed脚本一次打印一组行。该脚本首先测试第一个和第二个字段是否重复,然后使用通用解决方案用空格替换这些字段。如果第一个测试失败,则脚本会尝试仅匹配第一个字段,如果成功则使用与上面相同的解决方案。