Linux

linux + 文件輸出操作

  • April 29, 2018

我們有以下文件(可能或多或少是同一行)

more /tmp/info

linux01.sys76.com eno83122  Speed: 10000Mb/s
linux02.sys76.com eno83122  Speed: 10000Mb/s
linux03.sys76.com eno83122  Speed: 10000Mb/s
linux01.sys76.com eno83122 Speed: 10000Mb/s
linux02.sys76.com eno83122 Speed: 10000Mb/s
linux03.sys76.com eno83122 Speed: 10000Mb/s
linux01.sys76.com eno83122 Speed: 10000Mb/s
linux02.sys76.com eno83122 Speed: 10000Mb/s
linux03.sys76.com eno83122 Speed: 10000Mb/s
linux01.sys76.com eno83122  Duplex: Full
linux02.sys76.com eno83122  Duplex: Full
linux03.sys76.com eno83122  Duplex: Full
linux01.sys76.com eno83122 Duplex: Full
linux02.sys76.com eno83122 Duplex: Full
linux03.sys76.com eno83122 Duplex: Full
linux01.sys76.com eno83122 Duplex: Full
linux02.sys76.com eno83122 Duplex: Full
linux03.sys76.com eno83122 Duplex: Full
linux01.sys76.com eno83122  Link detected: yes
linux02.sys76.com eno83122  Link detected: yes
linux03.sys76.com eno83122  Link detected: yes
linux01.sys76.com eno83122 Link detected: yes
linux02.sys76.com eno83122 Link detected: yes
linux03.sys76.com eno83122 Link detected: yes
linux01.sys76.com eno83122 Link detected: yes
linux02.sys76.com eno83122 Link detected: yes
linux03.sys76.com eno83122 Link detected: yes

如何操作輸出以便我們得到以下結果

預期結果(帶行縮進)

linux01.sys76.com eno83122  Speed     10000Mb/s
linux02.sys76.com eno83122  Speed     10000Mb/s
linux03.sys76.com eno83122  Speed     10000Mb/s
linux01.sys76.com eno83122  Speed     10000Mb/s
linux02.sys76.com eno83122  Speed     10000Mb/s
linux03.sys76.com eno83122  Speed     10000Mb/s
linux01.sys76.com eno83122  Speed     10000Mb/s
linux02.sys76.com eno83122  Speed     10000Mb/s
linux03.sys76.com eno83122  Speed     10000Mb/s


linux01.sys76.com eno83122  Duplex        Full
linux02.sys76.com eno83122  Duplex        Full
linux03.sys76.com eno83122  Duplex        Full
linux01.sys76.com eno83122  Duplex        Full
linux02.sys76.com eno83122  Duplex        Full
linux03.sys76.com eno83122  Duplex        Full
linux01.sys76.com eno83122  Duplex        Full
linux02.sys76.com eno83122  Duplex        Full
linux03.sys76.com eno83122  Duplex        Full



linux01.sys76.com eno83122  Link_detected  yes
linux02.sys76.com eno83122  Link_detected  yes
linux03.sys76.com eno83122  Link_detected  yes
linux01.sys76.com eno83122  Link_detected  yes
linux02.sys76.com eno83122  Link_detected  yes
linux03.sys76.com eno83122  Link_detected  yes
linux01.sys76.com eno83122  Link_detected  yes
linux02.sys76.com eno83122  Link_detected  yes
linux03.sys76.com eno83122  Link_detected  yes

**Awk**解決方案:

awk 'prev && prev != $3 { print ORS ORS }{ prev = $3 }1' /tmp/info

輸出:

linux01.sys76.com eno83122  Speed: 10000Mb/s
linux02.sys76.com eno83122  Speed: 10000Mb/s
linux03.sys76.com eno83122  Speed: 10000Mb/s
linux01.sys76.com eno83122 Speed: 10000Mb/s
linux02.sys76.com eno83122 Speed: 10000Mb/s
linux03.sys76.com eno83122 Speed: 10000Mb/s
linux01.sys76.com eno83122 Speed: 10000Mb/s
linux02.sys76.com eno83122 Speed: 10000Mb/s
linux03.sys76.com eno83122 Speed: 10000Mb/s



linux01.sys76.com eno83122  Duplex: Full
linux02.sys76.com eno83122  Duplex: Full
linux03.sys76.com eno83122  Duplex: Full
linux01.sys76.com eno83122 Duplex: Full
linux02.sys76.com eno83122 Duplex: Full
linux03.sys76.com eno83122 Duplex: Full
linux01.sys76.com eno83122 Duplex: Full
linux02.sys76.com eno83122 Duplex: Full
linux03.sys76.com eno83122 Duplex: Full



linux01.sys76.com eno83122  Link detected: yes
linux02.sys76.com eno83122  Link detected: yes
linux03.sys76.com eno83122  Link detected: yes
linux01.sys76.com eno83122 Link detected: yes
linux02.sys76.com eno83122 Link detected: yes
linux03.sys76.com eno83122 Link detected: yes
linux01.sys76.com eno83122 Link detected: yes
linux02.sys76.com eno83122 Link detected: yes
linux03.sys76.com eno83122 Link detected: yes

引用自:https://unix.stackexchange.com/questions/440702