regex - 使用正则表达式从行中提取子字符串并删除具有重复子字符串的行

标签 regex linux bash sed awk

我有一个文本文件,其中包含以下形式的一些行

*,[anything, even blanks],[dog|log|frog],[dog|log|frog],[0|1],[0|1],[0|1]

我想删除具有相同 * 值的重复行(不区分大小写),即 剩下的任何内容,[任何内容,甚至是空白] ,[狗|日志| Frog ],[狗|日志| Frog ],[0|1],[0|1],[0|1]

例如这是一个示例文本文件

test,bar,log,dog,0,0,0
one
foo,bar,log,dog,0,0,0
/^test$/,bar,log,dog,0,0,0
one
FOO,,frog,frog,1,1,1

生成的文本文件应该删除重复的 foo(顺序对我来说无关紧要,只要删除重复项,留下 1 个唯一的)

test,bar,log,dog,0,0,0
one
/^test$/,bar,log,dog,0,0,0
one
FOO,,frog,frog,1,1,1

我可以执行的最简单的 bash 命令是什么?

最佳答案

awk -F, '!seen[tolower($1)]++' file

关于regex - 使用正则表达式从行中提取子字符串并删除具有重复子字符串的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404384/

相关文章:

regex - 如何在 perl 替换运算符的替换端使用表达式?

linux - 如何从当前目录中的所有文件夹中删除 Linux 中具有特定文件名的文件?

Linux shell 脚本通过用户输入搜索日志

linux - 括号中的 ldd 十六进制数

linux - 搜索字符串的组合和模式

Bash,双引号和 "reboot"命令

r - 如何测试\是否在字符串中?

c - 在哪里可以找到 Flex/Bison、Ragel、ANTLR 等的比较?

java正则表达式解析部分标题标签

linux - 用于移动文件及其父目录的 Bash 脚本