linux - 将 Linux 服务器的文本文件中的行与条件结合起来

标签 linux perl grep

<分区>

我在Linux服务器上的文本文件中有如下记录-

telephone = 1111
a=1
b=2
telephone = 2222
a=1
b=2
c=3
telephone = 3333
a=1
b=2
c=3
d=4

我需要这样-

telephone = 1111, a=1, b=2
telephone = 2222, a=1, b=2, c=3
telephone = 3333, a=1, b=2, c=3, d=4

Grep 或 perl 命令都可以帮助获得结果。

最佳答案

使用 perl 一行代码:

perl -ne 'chomp; print !/^telephone/ ? ", " : $. > 1 ? "\n" : ""; print' file.txt

开关:

  • -n : 创建一个 while(<>){...}循环输入文件中的每一行。
  • -e : 告诉perl在命令行上执行代码。

关于linux - 将 Linux 服务器的文本文件中的行与条件结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24897929/

相关文章:

linux - 有没有办法检查最近是否刷新了处理器缓存?

linux - 内核空间内存布局

perl - 在Perl中使用Getopt::Long获取多维数据结构

java - 惰性(贪婪)使用正则表达式匹配多个组

regex - 计算 csv 文件行中逗号的确切数量(正则表达式)

Javascript 通过对象键像 SQL 一样在对象数组中搜索

linux - 如何让 grep 忽略第一行并处理其他行

linux - 如何只显示 Docker 容器中分配的资源?

ruby - 无法在 Redhat Linux 服务器上安装 RVM

perl - 如何运行外部命令并在 Perl 中捕获其输出?