小编pal*_*ing的帖子

使用 Bash 脚本在 UNIX 中对 XML 文件进行排序?

我正在尝试按字母顺序对看起来像这样的 XML 文件进行排序。这是一个更大的 bash 脚本的一部分,因此它需要在该脚本中工作:

<Module>
    <Settings>
        <Dimensions>
            <Volume>13000</Volume>
            <Width>5000</Width>
            <Length>2000</Length>
        </Dimensions>
        <Stats>
            <Mean>1.0</Mean>
            <Max>3000</Max>
            <Median>250</Median>
        </Stats>
    </Settings>
    <Debug>
        <Errors>
            <Strike>0</Strike>
            <Wag>1</Wag>
            <MagicMan>0</MagicMan>
        </Errors>
    </Debug>
</Module>
Run Code Online (Sandbox Code Playgroud)

我希望最终结果看起来像这样,我只希望对最里面的标签进行排序:

<Module>
    <Settings>
        <Dimensions>
            <Length>2000</Length>
            <Volume>13000</Volume>
            <Width>5000</Width>
        </Dimensions>
        <Stats>
            <Max>3000</Max>
            <Mean>1.0</Mean>
            <Median>250</Median>
        </Stats>
    </Settings>
    <Debug>
        <Errors>
            <MagicMan>0</MagicMan>
            <Strike>0</Strike>
            <Wag>1</Wag>
        </Errors>
    </Debug>
</Module>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用这样的排序,其中 -t 按 > 分隔符排序,然后按第 4 列排序,这将在内部,但它不起作用。

sort -t'>' -k4 file > final.xml
Run Code Online (Sandbox Code Playgroud)

我得到时髦的输出,它用排序的内部标签对其他列进行排序。

任何帮助,将不胜感激

xml awk sort

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

如何使用 BASH 将 .txt 文件数据存储在 CSV 文件的不同列中?

我有一个具有以下数据结构的 .txt 文件:

Scan Times:
 33.3 seconds
 77.4 seconds
 33.3 seconds
 77.4 seconds

Check Times:
 110.30 seconds
 72.99 seconds
 72.16 seconds
 110.30 seconds

Move Times:
 73.66 seconds
 90.77 seconds
 72.87 seconds
 71.75 seconds
 
Switch Times:
 92.0 seconds
 78.6 seconds
 77.8 seconds
 84.9 seconds
Run Code Online (Sandbox Code Playgroud)

我现在想要获取该 .txt 文件并创建一个具有以下格式的 CSV 文件。

在此处输入图片说明

到目前为止,我的 bash 脚本有一个非常基本的布局,但我不确定如何继续:

inputFiles=("./Successes/SuccessSummary.txt" "./Failures/FailSummary.txt")
touch results.csv

for file in "${inputFiles[@]}"
do 
    while IFS= read -r line
    do
        #echo $line
        if [ "$line" = "Scan Times:" ]
        then 
        fi

        if [ "$line" …
Run Code Online (Sandbox Code Playgroud)

scripting bash csv files text

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

标签 统计

awk ×1

bash ×1

csv ×1

files ×1

scripting ×1

sort ×1

text ×1

xml ×1