linux - bash 合并开始和结束相同的行

标签 linux bash shell sed awk

伙计们,我怎样才能打开这个文件:

ops01.mysite.com /dev/mapper/sys-home 7700480  602202 7098278    8% /home
ops01.mysite.com /dev/mapper/sys-tmp   512000     471  511529    1% /tmp
ops01.mysite.com /dev/mapper/sys-var   512000    3236  508764    1% /var
ops01.mysite.com /dev/mapper/sys-home   58G   26G   30G  47% /home
ops01.mysite.com /dev/mapper/sys-tmp   3.9G  2.3G  1.5G  61% /tmp
ops01.mysite.com /dev/mapper/sys-var   3.9G  533M  3.2G  15% /var
ops02.mysite.com /dev/mapper/sys-home 3424256  250425 3173831    8% /home
ops02.mysite.com /dev/mapper/sys-tmp   262144      17  262127    1% /tmp
ops02.mysite.com /dev/mapper/sys-var   262144    2647  259497    2% /var
ops02.mysite.com /dev/mapper/sys-home   52G  9.5G   40G  20% /home
ops02.mysite.com /dev/mapper/sys-tmp   4.0G  137M  3.7G   4% /tmp
ops02.mysite.com /dev/mapper/sys-var   4.0G  419M  3.4G  11% /var

进入这个:

ops01.mysite.com /dev/mapper/sys-home 7700480  602202 7098278    8% /home   ops01.mysite.com /dev/mapper/sys-home   58G   26G   30G  47% /home
ops01.mysite.com /dev/mapper/sys-tmp   512000     471  511529    1% /tmp    ops01.mysite.com /dev/mapper/sys-tmp   3.9G  2.3G  1.5G  61% /tmp
ops01.mysite.com /dev/mapper/sys-var   512000    3236  508764    1% /var    ops01.mysite.com /dev/mapper/sys-var   3.9G  533M  3.2G  15% /var
ops02.mysite.com /dev/mapper/sys-home 3424256  250425 3173831    8% /home   ops02.mysite.com /dev/mapper/sys-home   52G  9.5G   40G  20% /home
ops02.mysite.com /dev/mapper/sys-tmp   262144      17  262127    1% /tmp    ops02.mysite.com /dev/mapper/sys-tmp   4.0G  137M  3.7G   4% /tmp
ops02.mysite.com /dev/mapper/sys-var   262144    2647  259497    2% /var    ops02.mysite.com /dev/mapper/sys-var   4.0G  419M  3.4G  11% /var

所以当目录相同时,合并那些行 (在 OSX 中,df 命令输出 inode 和空间使用情况,但在我使用的这个 redhat 中,我必须运行一个 df -h 来了解空间使用情况,并运行一个 df -i 来获取 inode 使用情况)

我用过:

cat file | sed 's/[0-9]% /*\n/ /'

尝试替换下一行文本的每个“%”之后的文本...但这根本不起作用...:S 而且我无法按“ops01.mysite.com”进行过滤,因为我不知道必须检查多少台服务器。 提前致谢

最佳答案

分别运行 2 个 df 命令,将它们的结果保存到单独的文件中,然后 join 这两个文件。

df > df-size
df -i > df-inodes
join df-size df-inodes

关于linux - bash 合并开始和结束相同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488473/

相关文章:

linux - 将文件中的多个参数传递给 Shell 中的 while 循环

linux - Bash 替换文件中的文本

unix - 如何将 shell session 的所有控制台输出发送到日志文件

linux - 加载共享库 : libevent-1. 4.so.2 时出错:无法打开共享对象文件:

linux - Bash CSV 排序和唯一性

linux - 如何获取或捕获由 postfix 发送的电子邮件正文和标题

linux - Linux shell 表达式中的变量

linux - UNIX 中的陷阱命令

bash - 如何将命令行参数传递给 sed?

bash - 如何使用 djpeg 和 pnmtopng 将 jpeg 转换为 png?