Ik heb het volgende commando:
locate -br '^test.sh$'
De uitvoer is:
/home/cas/scripts/test.sh
Ik wil het pad hebben zonder de naam van het bestand. Dus ik deed het volgende om test.sh uit de output te verwijderen:
locate -br '^test.sh$' | grep -v test.sh
Ik verwachtte dat de output zou zijn:
/home/cas/scripts/
Maar in plaats daarvan krijg ik gewoon geen output. Als ik op enter druk, krijg ik geen uitvoer en wacht het gewoon op het volgende commando. Zie onderstaande afbeelding
Niets geeft een output. Ik heb zelfs geprobeerd iets anders, 'cas', om te keren, maar het zou geen uitvoer geven aan.
Het lijkt erop dat grep -v
gewoon niet werkt. Maar normale grep (dus niet omgekeerd) WERKT.
Waarom werkt het niet? Of is er een betere manier om het pad naar een bestand overal vandaan te vinden, maar zonder de bestandsnaam in de uitvoer (het doel is om / home / cas / scripts /
te krijgen)?
На самом деле grep -v ШАБЛОН
возвращает все строки, которые не содержат ШАБЛОН
, поэтому выдает пустой вывод.
Вам может подойти следующее:
locate -br '^test.sh$' | xargs dirname