我有以下给定的代码,用于将字节转换为相应的值:
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) 以下两个变量包含开始时间和结束时间,需要获取这两个时间的秒数差
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 机器。
我有一个很小的 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) 不知道为什么在使用 /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)