gpt4 book ai didi

java - 在 AIX 上设置命令输出的列宽

转载 作者:行者123 更新时间:2023-12-01 13:18:47 25 4
gpt4 key购买 nike

我正在尝试解析df -Pg命令的输出在我的 Java 应用程序中,它将根据我的需要打印。

这是命令的输出:

Filesystem    GB blocks      Used Available Capacity Mounted on
/dev/hd4 1.00 0.30 0.70 31% /
/dev/hd2 3.62 2.65 0.98 74% /usr
/dev/hd9var 2.00 0.19 1.81 10% /var
/dev/hd3 2.88 1.61 1.27 56% /tmp
/dev/hd1 2.00 1.30 0.70 66% /home
/proc - - - - /proc
/dev/hd10opt 1.00 0.27 0.73 28% /opt
/dev/fslv00 2.88 1.25 1.63 44% /tsmfiles
/dev/fslv01 2.00 0.84 1.16 43% /opt/IBM/ITM
/dev/livedump 0.25 0.00 0.25 1% /var/adm/ras/livedump
/dev/DoOnceAIX 0.75 0.00 0.75 1% /DoOnceAIX
/dev/nmonlv 1.00 0.03 0.97 4% /var/perf/poa
/dev/fslv02 49.50 42.86 6.64 87% /u01
/dev/fslv03 685.00 312.62 372.38 46% /u02
akslltsm:/depot 60.50 43.06 17.44 72% /mnt

我的 java 解析器用间距大小分割此文本。当它读取行时,当 hee 看到至少 1 个空格字符时,解析器就会分割字符串。正如您所看到的,列内有一些行(例如“GB blocks ”和“Mounted on ”),所以我无法按我想要的方式拆分。

我想要的是设置一个列宽(2+空格字符)并让我的程序成功解析它。

最佳答案

捕获特殊情况并填充空格,调整列,然后撤消第一步中所做的操作。

例如

step one: sed -e 's/GB Blocks/GB_Blocks/' -e 's/Mounted on/Mounted_on/'

second step: your normal program that adjusts the columns

third step: sed -e 's/GB_Blocks/GB Blocks/' -e 's/Mounted_on/Mounted on/'

然后将它们连接在一起:

sed -e ... | <your prog> | sed -e ...

对于这种情况,这是一种相当通用的技术。如果无法解析输入(使用当时需要的任何定义),则更改输入以使其工作,解析它,然后反转第一个更改。

关于java - 在 AIX 上设置命令输出的列宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22226222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com