重擊:將一列文字轉換為一行

假設我們有一個名為 發行版.txt 具有以下內容:

ArchLinux的
Debian的
Ubuntu的
這件襯衫
Fedora的
Slackware的
巴布亞

我們想把它變成:

archlinux debian ubuntu kaos fedora slackware gentoo

為此,我們將使用 for循環迴聲-n :

for i in `< distros.txt`; do echo -n ${i}" ";done; echo ""

做完了,這招the

這將在終端顯示我們想要的結果,另一方面,如果我們希望將其保存在另一個.txt文件中,則將輸出重定向:

for i in `< distros.txt`; do echo -n ${i}" ";done; echo "" > distros-nuevas.txt

和瞧ila

好吧,希望您發現它有用。 可以肯定地證明它也可以使用正則表達式來完成,我只是不知道如何...但是,使用正則表達式您幾乎可以完成所有工作。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   何塞·里卡多 他說:

    更輕鬆:

    貓發行版.txt | xargs -n 100

  2.   ¿ 他說:

    如果在.odt文件中,每頁上有2列,則它們顯示如下:

    第1章
    第1列第2列
    第2章
    第3列第4列
    等。

    如何使每一列都位於另一列之下?
    第1欄
    第2欄
    第3欄
    第4欄
    等。

  3.   胡安 他說:

    容易得多:

    如果要用製表符分隔:
    您編寫:paste -s distros.txt
    您得到:archlinux debian ubuntu kaos fedora slackware gentoo

    如果要用空格隔開:
    您寫道:粘貼-s -d»»distros.txt
    您得到:archlinux debian ubuntu kaos fedora slackware gentoo

    如果要用逗號分隔:
    您編寫:paste -s -d,distros.txt
    您將獲得:archlinux,debian,ubuntu,kaos,fedora,slackware,gentoo

    與粘貼,貓,awk和其他朋友一起,只要稍加匠心,就可以進行許多有用的組合,而不會使您的生活複雜化。

    祝一切順利,祝賀Portalprogramas獲獎!

    1.    獵人 他說:

      簡而言之,我一直在使用sed,awk,cut,sort,uniq,但是我從來沒有註意粘貼,感謝您展示了它的功能。 Slds。

  4.   塔布里斯 他說:

    貓file.txt | xargs

    利潤。

  5.   克里斯蒂安 他說:

    我總是為此使用excel [transpose] ...非常有用

  6.   布魯諾·卡西歐(Bruno Cascio) 他說:

    另一個變體:

    cat distros.txt | tr«\ n»»«

  7.   華金 他說:

    呵呵呵在每條評論中,都是以不同的方式做同樣的事情!

  8.   何塞GDF 他說:

    相反,那會是什麼樣呢? 即,將由空格分隔的單詞行轉換為列。

    1.    胡安 他說:

      這次使用awk也很容易。
      假設字段由製表符或空格分隔,這是最常見的(如果使用逗號或其他方式,則必須考慮並指出),並且該文件現在包含:archlinux debian ubuntu kaos fedora slackware gentoo

      由於awk直接為我們提供了我們想要的領域,因此我們必須迭代地一步一步地向我們展示直到結束。 有7個字段,因為這是NF(字段數)的值。 我們將計數器設置為i = 1,以便它向我們顯示第一個字段($ 1),並且必須使它增加一個單位(使用i ++),而不會超過最後一個字段(NF)。

      awk'{for(i = 1; i <= NF; i ++){print $ i}}'distros.txt

      1.    埃特梅南基 他說:

        最實用的方法,易於記憶,並且對兩種感覺都適用:
        cat distros.txt | tr'\ n'''←水平輸出輸出(上面已經討論過)
        cat distros.txt | tr'''\ n'←垂直輸出

        的問候!

    2.    胡安 他說:

      如果您只希望從行到列的簡單轉換,反之亦然,那麼兩種方式的Etemenanki解決方案絕對可以。

    3.    何塞GDF 他說:

      謝謝大家的回應。 我將在下一個腳本中將它們付諸實踐。

      問候。

  9.   加藤 他說:

    如果僅這樣做:
    迴聲$(cat distros.txt)

  10.   安森·羅德里格斯(Anson Rodriguez) 他說:

    更簡單:
    awk'{printf $ 0''«}'distros.txt