假設我們有一個名為 發行版.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
好吧,希望您發現它有用。 可以肯定地證明它也可以使用正則表達式來完成,我只是不知道如何...但是,使用正則表達式您幾乎可以完成所有工作。
更輕鬆:
貓發行版.txt | xargs -n 100
如果在.odt文件中,每頁上有2列,則它們顯示如下:
第1章
第1列第2列
第2章
第3列第4列
等。
如何使每一列都位於另一列之下?
第1欄
第2欄
第3欄
第4欄
等。
容易得多:
如果要用製表符分隔:
您編寫: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獲獎!
簡而言之,我一直在使用sed,awk,cut,sort,uniq,但是我從來沒有註意粘貼,感謝您展示了它的功能。 Slds。
貓file.txt | xargs
利潤。
我總是為此使用excel [transpose] ...非常有用
另一個變體:
cat distros.txt | tr«\ n»»«
呵呵呵在每條評論中,都是以不同的方式做同樣的事情!
相反,那會是什麼樣呢? 即,將由空格分隔的單詞行轉換為列。
這次使用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
最實用的方法,易於記憶,並且對兩種感覺都適用:
cat distros.txt | tr'\ n'''←水平輸出輸出(上面已經討論過)
cat distros.txt | tr'''\ n'←垂直輸出
的問候!
如果您只希望從行到列的簡單轉換,反之亦然,那麼兩種方式的Etemenanki解決方案絕對可以。
謝謝大家的回應。 我將在下一個腳本中將它們付諸實踐。
問候。
如果僅這樣做:
迴聲$(cat distros.txt)
更簡單:
awk'{printf $ 0''«}'distros.txt