【发布时间】:2016-08-26 14:24:12
【问题描述】:
我有配置文件,我想要匹配特定的行,例如“server.port=5480”。保留该匹配首先删除其余匹配行。示例
server.port=5480
server.port=5480
server.port=5480
ssl.engine = "enable"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
ssl.cipher-list = "FIPS':' +3DES':'!aNULL"
ssl.engine = "enable"
ssl.use-sslv2 = "disable"
server.port=5480
server.port=5480
server.port=5480
server.port=5480
想要的输出只有一行
server.port=5480
ssl.engine = "enable"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
ssl.cipher-list = "FIPS':' +3DES':'!aNULL"
ssl.engine = "enable"
ssl.use-sslv2 = "disable"
使用 sed 我想要这个,还有一个不是序列行,可能是它的变体
【问题讨论】:
-
如果您对非
sed解决方案持开放态度,您可以尝试将您的输出通过管道传输到sort -u。 -
你能举个例子吗
-
Sort -u 并不是 OP 想要的,因为它会合并整个文件并只留下唯一的条目。他只是想删除一个接一个出现多次的情况。
-
@SatheeshSivaNallathambi 可以直接使用:
sort -u your_file,也可以在管道之后使用:cat your_file | sort -u。但正如 VarunMandalaparthy 所解释的那样,所有重复项都将被删除,不仅是您想要的那个,而且整个文件都会被排序。