LibreOffice макросы: не могу выполнить удаление через bash
Все работает, только не выполняется скрипт, который через shell заходит в каждую директорию и удаляет файлы кроме файлов по маске.
Как я понимаю, для выполнения скрипта нужно выподнить Shell("/usr/bin/gnome-terminal -- bash -c...
Код из командной строки запускается.
Вот это не работает в примере:
Shell("/usr/bin/gnome-terminal -- ls -d "+cm+"/*/ | awk '{print $NF}' | xargs -n1 bash -c 'cd $0; pwd; ls | grep -v "+cs+" | xargs rm'")
Вот весь код:
REM ***** BASIC *****
Sub Main
DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
ocControl1 = Dlg.getControl("catalog1")
ocControl2 = Dlg.getControl("query1")
Dlg.Execute()
cm = ocControl1.getText()
cs = ocControl2.getText()
Shell("/usr/bin/gnome-terminal -- bash -c 'ls -R "+cm+" | grep "+cs+" >> "+cm+"/temporary.tmp'")
wait 1000
Dim iNumber As Integer
Dim sLine As String
Dim aFile As String
Dim sMsg As String
aFile = cm+"/temporary.tmp"
iNumber = Freefile
Open aFile For Input As iNumber
While Not eof(iNumber)
Line Input #iNumber, sLine
If sLine <>"" Then
sMsg = sMsg & sLine & chr(13)
End If
Wend
Close #iNumber
MsgBox "Найденные файлы: "+sMsg+" Остальные файлы будут удалены"
kill aFile
Shell("/usr/bin/gnome-terminal -- bash -c 'cd "+cm+"; ls -R | grep -v "+cs+" | xargs rm'")
Shell("/usr/bin/gnome-terminal -- ls -d "+cm+"/*/ | awk '{print $NF}' | xargs -n1 bash -c 'cd $0; pwd; ls | grep -v "+cs+" | xargs rm'")
End Sub