小编ram*_*amp的帖子

需要将字节转换为正常十进制格式的 GB、MB、KB

我有以下给定的代码,用于将字节转换为相应的值:

for OUTPUT in $(find $IP_DIR -maxdepth 1 | awk 'NR>1')
do
    case $RETURNSIZE in
        "gb") FS=`du -b $OUTPUT | awk {'print $1'}`
              FS=`echo $FS | awk '{ byte =$1 /1024/1024**2 ; print byte " GB" }'`
              echo $OUTPUT "|" $FS;;
        "mb") FS=`du -b $OUTPUT | awk {'print $1'}`
              FS=`echo $FS | awk '{ byte =$1 /1024/1024 ; print byte " MB" }'`
              echo $OUTPUT "|" $FS;;
        "kb") FS=`du -b $OUTPUT | awk {'print $1'}`
              FS=`echo $FS | awk '{ …
Run Code Online (Sandbox Code Playgroud)

linux shell-script

12
推荐指数
2
解决办法
3万
查看次数

需要以秒为单位获得两次时间之间的差异

以下两个变量包含开始时间和结束时间,需要获取这两个时间的秒数差

start_time=06:07:25
end_time=07:02:08
Run Code Online (Sandbox Code Playgroud)

期望输出

diff_time= 3283 Seconds
Run Code Online (Sandbox Code Playgroud)

我使用带有 ksh88 的 AIX 6.1 机器。

bash ksh aix date

6
推荐指数
2
解决办法
1万
查看次数

多次提取并删除第一次出现的 XML 标记

我有一个很小的 ​​XML 文件。我已经被提供了,我需要做的就是在 XML 标记之间提取一些值。因为XML我的机器中没有可用的解析器实用程序。我正在寻找一种替代方法。

首先,有一个 XML 标签<capacity> </capacity> 它在 XML 文件中重复了n次,并且在这个 XML 标签之间还有许多其他不同的标签。

我必须分别获取每次出现的<capacity> </capacity>XML 标记,然后解析它并提取它们下的值。

<subcolumns><capacity><name>45.90</name>
<index>0</index>
<value_type>String</value_type>
<ignore_case_flag>1</ignore_case_flag>
<hidden_flag>0</hidden_flag>
<exclude_from_parse_flag>1</exclude_from_parse_flag>
</capacity>
<capacity><name>57.09</name>
<index>1</index>
<value_type>String</value_type>
<ignore_case_flag>1</ignore_case_flag>
<hidden_flag>0</hidden_flag>
<exclude_from_parse_flag>1</exclude_from_parse_flag>
</capacity>
<capacity><name>55</name>
<index>2</index>
<value_type>String</value_type>
<ignore_case_flag>1</ignore_case_flag>
<hidden_flag>0</hidden_flag>
<exclude_from_parse_flag>1</exclude_from_parse_flag>
</capacity>
</subcolumns>
Run Code Online (Sandbox Code Playgroud)

所以我认为的逻辑是找到<capacity> </capacity>XML 标记的第一次出现并将其打印到临时文件,然后删除第一次出现。

<capacity><name>45.90</name>
<index>0</index>
<value_type>String</value_type>
<ignore_case_flag>1</ignore_case_flag>
<hidden_flag>0</hidden_flag>
<exclude_from_parse_flag>1</exclude_from_parse_flag>
</capacity>
Run Code Online (Sandbox Code Playgroud)

此后,当第二次这样做时,<capacity> </capacity>会考虑新的XML 标记对。所以这必须重复多次,直到<capacity> </capacity>找到最后一个标签。每次提取这部分时,数据都会发生变化,并且可以提取。

现在我只想<capacity> </capacity>从主 XML 文件中选择第一次出现的XML 标记并将其打印到临时文件并删除该部分。

这就是我尝试过的,但对我没有任何效果。

sed -n '2,${/<capacity>\(.*\)<\/capacity>/\1/p;q;}' "<input XML …
Run Code Online (Sandbox Code Playgroud)

xml sed shell-script

1
推荐指数
1
解决办法
1613
查看次数

无法使用 /dev/null 抑制错误消息

不知道为什么在使用 /dev/null 2>&1 后我无法抑制错误消息

$ ll /home/harry/workbook/smoel | grep xyz > /dev/null 2>&1
ls: cannot access /home/harry/workbook/smoel: No such file or directory
Run Code Online (Sandbox Code Playgroud)

linux

1
推荐指数
1
解决办法
239
查看次数

标签 统计

linux ×2

shell-script ×2

aix ×1

bash ×1

date ×1

ksh ×1

sed ×1

xml ×1