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

Ответы (0 шт):