我正在使用sed將字符串存儲在變量中。我想在文本文件中選擇一行的一部分,但無法這樣做。無法使用sed -n'/.../p'來捕獲部分行
例如,如果從中我想提取文本的文本行是:
{foo bar 1.1.2} foo
而且我想提取bar 1.1.2
我的命令是這樣的: BarVersion=$(sed -n "/bar [.0-9]/p" file.txt)
不過,如果我接着寫:
echo $BarVersion
我發現sed命令已將整行保存在BarVersion中,而不僅僅是我查找的部分。即我得到{foo bar 1.1.2} foo
這也將打印不匹配的所有行的要求模式,並沒有對他們進行替換。當你用'echo'喂一行時不是問題,而是在處理'file.txt'時出現問題。 – Barmar
'-n'防止這種情況。 – 2013-08-22 14:28:00
我的錯誤。我一直認爲最後的'p'是無條件的,但只有在發生替換時纔會打印。 – Barmar