x=rankings* && grep -A10 -P '^Ranked :$' $x | tail -n +2 > results$x
這是一個命令,我無法使用該命令,無法在10次以上的堆棧溢出搜索中找到任何內容。使用通配符作爲參數的Bash命令
有沒有一種方法可以將通配符作爲參數提供給一行命令?我想根據目錄中的現有文件製作一個文件列表。
我得到的最接近是
x=rankingsX.Y.Z && grep -A10 -P '^Ranked :$' $x | tail -n +2 > results$x
,其中XYZ是一些數字,但是這硬編碼分別是我的目標相反 - 單行命令(不腳本文件),搜索和使用原始名稱將特定文本輸出到文件中。
一般而言,要求一個「單行命令」是壞的形式因爲它優先考慮簡潔性而不是可讀性。沒有理由不可以在一行中寫'for x排名*',在一個交互式shell中寫一個循環的主體,在第三個''完成',這會讓任何人試圖追隨你在做什麼(包括你未來的自我!)更容易。 –
感謝您的建議,我想我應該嘗試使用shell的那部分 - 假設Konsole可以做這樣的事情? –
不需要特殊的終端支持 - 如果你編寫複合命令的一部分(它本身沒有語法上的完整性)並按回車,你會在下一行看到'>' - 這意味着shell給你一個添加更多/完成已經啓動的語法的機會。如果你想分割一些*可能被解釋爲語法上有效的多行代碼,那麼在一行的末尾加一個反斜槓會讓你在下一行輸入更多。 –