使用bash ...2個模式之間的提取線
我希望遍歷每個'_Brkt'發生的變量列表;
echo "$BrackListAllFinal"
DSCF3649-DSCF3651_Brkt
DSCF3649.JPG 2014-07-21 13:34:44 On 1
DSCF3649.RAF 2014-07-21 13:34:44 On 1
DSCF3650.JPG 2014-07-21 13:34:45 On 2
DSCF3650.RAF 2014-07-21 13:34:45 On 2
DSCF3651.JPG 2014-07-21 13:34:45 On 3
DSCF3651.RAF 2014-07-21 13:34:45 On 3
DSCF3652-DSCF3654_Brkt
DSCF3652.JPG 2014-07-21 13:38:24 On 1
DSCF3652.RAF 2014-07-21 13:38:24 On 1
DSCF3653.JPG 2014-07-21 13:38:24 On 2
DSCF3653.RAF 2014-07-21 13:38:24 On 2
DSCF3654.JPG 2014-07-21 13:38:25 On 3
DSCF3654.RAF 2014-07-21 13:38:25 On 3
我想顯示的文件名在「_Brkt」結尾的行每一次出現的以下並在下一次出現停止 ,如果存在。我將以'_Brkt'結尾的每一行創建一個新目錄,並將它後面的順序文件移動到新目錄中。
我試過了;
echo "$BrackListAllFinal" | awk '{print $1}' | awk '/.*\..*/, /_Brkt$/'
......還有......
echo "$BrackListAllFinal" | awk '{print $1}' | sed -n '/_Brkt$/,/_Brkt$/p
例如...
創建在 '_Brkt'
DSCF3649結束每行一個新的目錄-DSCF3651_Brkt
將順序文件名移動到新目錄中。
- DSCF3649.JPG
- DSCF3649.RAF
- DSCF3650.JPG
- DSCF3650.RAF
- DSCF3651.JPG
- DSCF3651.RAF
我可以在行結束後不會顯示行'_Brkt'。 我有點失落,有人可以幫忙。
謝謝。
很多感謝您的回答。我很難將這一點融入到迄今爲止我所做的事情中。您能否告訴我如何使用sed或awk來執行選擇。謝謝。 – voiczed 2014-10-02 01:47:40
@voiczed這是不可能的:你有狀態從一行傳播到下一行 – 2014-10-02 10:08:53