0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Linux命令行中格式化輸出xml

CHANBAEK ? 來源:TIAP ? 作者:TIAP ? 2023-01-12 17:37 ? 次閱讀

我們先前分享過一篇關(guān)于在命令行中格式化輸出 json 文件的文章,今天我們再來分享一下如何在命令行中格式化輸出 xml。

xml(可擴展標(biāo)記語言)也是一種人類可讀的標(biāo)記語言,但是如同 json 文件一樣,沒有縮進(jìn)格式(或者壓縮)的 xml 文件,讀起來那是挺頭疼的。

首先來看一下我們這篇文章要達(dá)到的目的,如下圖所示:

圖片

要實現(xiàn)這種效果,我們總結(jié)了三種方法。 作為演示的例子,我們使用如下文件 email.xml:

<emails> <email> <from>Sagarfrom> <to>Milanto> <time>2022-10-14time>
<subject>Writing a lot these dayssubject>email> <email>
<from>Sagarfrom> <to>Arvindto> <time>2022-10-13time> <subject>Heyy, send me the Goa pictures ASAP!subject>
email> emails>

方法1:使用 xmllint 格式化打印 xml

xmllint 工具提供了 --format 選項,可以讓用戶重新格式化 xml 文件。 如下語法所示:

xmllint --format XML_FILE

比如,作為演示,我們使用 email.xml:

xmllint --format email.xml

圖片

格式化輸出,默認(rèn)縮進(jìn)兩個空格。 如果想要修改為更多的空格(比如4個空格),可以使用環(huán)境變量 XMLLINT_INDENT。

比如,我們使用 email.xml 作為例子,使其縮進(jìn)為 4 個空格:

XMLLINT_INDENT="    " xmllint --format email.xml

圖片

結(jié)合前一個例子,大家可以看到區(qū)別嗎?

方法2:使用 XMLStarlet 工具包

XMLStarlet 提供了一組命令,分別用于不同的目的。 其中涉及到了 xml 命令,可以通過該命令來執(zhí)行與 xml 文件相關(guān)的操作。

但是在使用之前,需要手動安裝,如下所示:

sudo snap install xmlstarlet

要格式化輸出 xml,需要使用 xml 命令的 format 選項,如下所示:

xml format email.xml

圖片

另外,它還提供了一些其他的選項,如下:

  • -n 不添加空格,結(jié)果類似于文本向左對齊;
  • -t 使用 tab 鍵輸出以提高可讀性;
  • -o 省略 xml 生命,除了在文件的頂部添加 ;
  • -s 添加任意數(shù)量的空格。

比如,我們使用 fo 添加 6 個空格來格式化輸出 xml 文件:

xml fo -s 6 email.xml

圖片

方法3:使用 xml_pp 命令

這個方法不是很靈活,因為 xml_pp 是 Perl 的一個模塊,名為 XML::Twig。

它不會輸出內(nèi)容,但是會直接修改源文件。

它在使用之前,同樣需要手動安裝。 如果你使用的是基于 Debian 的系統(tǒng),可使用如下命令:

sudo apt install xml-twig-tools

比如,我們使用 record 模式來格式化輸出 email.xml:

圖片

這里,-i 選項用于在原始文件中進(jìn)行更改,同時用于附加擴展名。

-s 選項用于使用樣式選項,這里我使用了 record。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207908
  • XML
    XML
    +關(guān)注

    關(guān)注

    0

    文章

    186

    瀏覽量

    32993
  • 格式化
    +關(guān)注

    關(guān)注

    2

    文章

    37

    瀏覽量

    9087
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    551

    瀏覽量

    24559
  • 命令行
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    10368
收藏 人收藏

    評論

    相關(guān)推薦

    請問如何在代碼里執(zhí)行命令行啊?

    請問如何在代碼里執(zhí)行命令行???比如,在命令行可以執(zhí)行echo abcdefg aaa.txt生成一個aaa.txt。那么如何在程序中執(zhí)行 echo abcdefg aaa.txt 這一
    發(fā)表于 10-28 10:15

    caxa命令行中的應(yīng)用

    caxa命令行中的應(yīng)用 命令行對于大多用戶來說往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2258次閱讀

    linux 命令行使用技巧

    我們每天使用許多Linux命令行。我們從網(wǎng)上知道一些技巧,但如果我們不去練習(xí),我們就有可能忘記。我決定做一個關(guān)于技巧和竅門的列表,這些技巧和竅門對于你來說可能是已經(jīng)忘記的,或者可能是全新的。 輸出
    發(fā)表于 09-28 15:54 ?0次下載
    <b class='flag-5'>linux</b> <b class='flag-5'>命令行</b>使用技巧

    能提高效率的Linux命令行技巧

    巧妙的 Linux 命令行技巧能讓你節(jié)省時間、避免出錯,還能讓你記住和復(fù)用各種復(fù)雜的命令,專注在需要做的事情本身,而不是你要怎么做。以下介紹一些好用的命令行技巧。
    的頭像 發(fā)表于 02-02 17:39 ?1975次閱讀
    能提高效率的<b class='flag-5'>Linux</b><b class='flag-5'>命令行</b>技巧

    Linux 命令行教程好書推薦

    今天跟大家推薦個 Linux 命令行教程:《The Linux Command Line》,中文譯名:《Linux 命令行大全》。 該書作者
    的頭像 發(fā)表于 02-14 09:25 ?1392次閱讀

    何在Linux使用pidof命令

    `pidof`是一個命令行程序,可讓您找到正在運行程序的進(jìn)程ID。在教程中,我們將說明如何在Linux 使用pidof命令。
    的頭像 發(fā)表于 12-05 17:01 ?2132次閱讀

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    如何使用命令行Linux中查找文件?

    對于Linux新用戶來說,在Linux中查找文件可能有點困難。但是,在適當(dāng)?shù)闹笇?dǎo)下,任何人都可以創(chuàng)建文件快捷方式或找到其Linux系統(tǒng)中有多少文件。 我們必須使用命令行來查找文件或特定
    的頭像 發(fā)表于 03-23 14:55 ?4020次閱讀

    何在Linux命令行中運行Python腳本

    Python 腳本。 在本文中,我們將詳細(xì)介紹如何在 Linux 命令行中運行 Python 腳本。我們將討論以下主題:
    的頭像 發(fā)表于 05-12 14:49 ?1559次閱讀

    linux命令行與shell編程實戰(zhàn)

    Linux命令行與Shell編程實戰(zhàn)主要涉及以下內(nèi)容: Linux命令行基礎(chǔ):學(xué)習(xí)Linux命令行
    的頭像 發(fā)表于 11-08 10:57 ?622次閱讀

    linux虛擬機怎么調(diào)出命令行

    Linux虛擬機中調(diào)出命令行界面,可以通過以下步驟實現(xiàn): 打開虛擬機,進(jìn)入到Linux系統(tǒng)。 在桌面或應(yīng)用菜單中找到終端或命令行圖標(biāo),點擊打開。 輸入
    的頭像 發(fā)表于 11-08 11:28 ?2510次閱讀

    linux切換到命令行模式

    Linux中,可以通過以下步驟切換到命令行模式: 打開終端。可以在應(yīng)用菜單中找到終端或命令行終端。 在終端中輸入命令“exit”或“l(fā)ogout”,然后按回車鍵。 系統(tǒng)會提示您輸入管
    的頭像 發(fā)表于 11-13 16:47 ?1466次閱讀

    linux虛擬機怎么調(diào)出命令行

    Linux虛擬機是一種模擬運行Linux操作系統(tǒng)的虛擬環(huán)境,它可以在Windows、Mac、Linux等主機系統(tǒng)上運行。在Linux虛擬機中,你可以通過終端或
    的頭像 發(fā)表于 11-17 09:55 ?3177次閱讀

    linux命令行運行步驟

    運行Linux命令行涉及以下步驟: 打開終端 在Linux系統(tǒng)中,打開命令行界面的方式有多種,最常見的是打開終端應(yīng)用程序。可以在應(yīng)用程序菜單中找到終端,點擊打開。 熟悉
    的頭像 發(fā)表于 11-17 10:18 ?630次閱讀

    idea如何輸入命令行參數(shù)

    在許多軟件開發(fā)和系統(tǒng)管理的任務(wù)中,我們經(jīng)常需要向應(yīng)用程序傳遞命令行參數(shù)。命令行參數(shù)是在運行時傳遞給程序的值,用于指定程序的行為和配置選項。本文將詳細(xì)介紹如何在不同的編程語言和操作系統(tǒng)中輸入命令
    的頭像 發(fā)表于 12-06 15:01 ?822次閱讀