2017-07-27 127 views
1

我想在我的bash腳本中使用cut命令。我需要得到名稱中包含'sys'的rpm包的名稱,沒有完整的路徑。所以,我想這一點:cut:用「/」作爲分隔符

packageName=$(find temp/noarch/ -name '*sys*noarch.rpm' | cut -d "\/" -f 3) 

我認爲這種方式可以在沒有溫度/ noarch /返回程序包的名字,但它只是告訴我。 我知道我可以刪除子字符串"temp\/noarch\/",但我想用它剪下來。

在此先感謝!

回答

5

"\/"不會擴大到/,所以cut抱怨:

cut: the delimiter must be a single character 

使用純/代替:

packageName=$(find temp/noarch/ -name '*sys*noarch.rpm' | cut -d/ -f3) 
+0

是Linux並不需要在這裏奇怪的事情接收'\ /'。無論如何,工作得很好,非常感謝。 – Eos

+0

@Eos:奇怪? **在哪裏**它需要斜槓前的反斜槓? – choroba

+0

我正在處理裏面有路徑的文件。因此,當搜索這些路徑時,我正在搜索\「\/a \/file \ /」的路徑\ \,以便轉義字符。我習慣了。我的錯。 – Eos