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

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

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

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

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

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

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

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

圖片

要實(shí)現(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 選項(xiàng),可以讓用戶重新格式化 xml 文件。 如下語法所示:

xmllint --format XML_FILE

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

xmllint --format email.xml

圖片

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

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

XMLLINT_INDENT="    " xmllint --format email.xml

圖片

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

方法2:使用 XMLStarlet 工具包

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

但是在使用之前,需要手動(dòng)安裝,如下所示:

sudo snap install xmlstarlet

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

xml format email.xml

圖片

另外,它還提供了一些其他的選項(xiàng),如下:

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

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

xml fo -s 6 email.xml

圖片

方法3:使用 xml_pp 命令

這個(gè)方法不是很靈活,因?yàn)?xml_pp 是 Perl 的一個(gè)模塊,名為 XML::Twig。

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

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

sudo apt install xml-twig-tools

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

圖片

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

-s 選項(xiàng)用于使用樣式選項(xiàng),這里我使用了 record。

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

    關(guān)注

    87

    文章

    11304

    瀏覽量

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

    關(guān)注

    0

    文章

    188

    瀏覽量

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

    關(guān)注

    2

    文章

    39

    瀏覽量

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

    關(guān)注

    1

    文章

    566

    瀏覽量

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

    關(guān)注

    0

    文章

    77

    瀏覽量

    10392
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    linux 命令行使用技巧

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

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

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

    Linux 命令行教程好書推薦

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

    何在Linux使用pidof命令

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

    Linux命令行與shell腳本編寫

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

    何在Linux命令行中運(yùn)行Python腳本

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

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

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

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

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

    linux切換到命令行模式

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

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

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

    linux命令行運(yùn)行步驟

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

    總結(jié)linux命令行的主要用法

    Linux命令行是一種在Linux操作系統(tǒng)中通過文本界面來執(zhí)行指令和管理系統(tǒng)的方式。它提供了豐富的功能和靈活性,幫助用戶完成各種任務(wù)。本文將詳細(xì)介紹Linux
    的頭像 發(fā)表于 11-17 10:19 ?671次閱讀

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

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