簡體   English   中英

如何在bash中按名稱打印文件?

[英]How print lined from file by name in bash?

我怎么能grep或cat文件並按名稱打印值? 例如:file os-release - 我想只打印NAME和VERSION

NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian  
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

如果要完全打印包含NAMEVERSION的行,可以使用grep

$ grep "^NAME=\|^VERSION=" /etc/*-release
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"

在grepping時使用^確保單詞NAMEVERSION出現在行的開頭,這樣您就不會grep其他行,例如PRETTY_NAME =確保您不會grep諸如VERSION_ID

但是,如果您只想打印NAMEVERSION的值,則可以執行以下操作:

$ grep "^NAME=\|^VERSION=" /etc/*-release | grep -E -o ".[a-z]\w+"
Ubuntu
Trusty 
Tahr

假設您的文本文件名是test.txt。 然后僅對名稱和版本行運行以下命令

cat test.txt | grep "NAME\|VERSION"

您在評論中獲得的完整價值

cat text.txt | grep "NAME=\"Ubuntu\"\|VERSION=\"14.04.3 LTS, Trusty Tahr\""

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM