GNU/Linux >> Linux Esercitazione >  >> Linux

Utilizzo di "trova" per restituire nomi di file senza estensione

Ecco una soluzione semplice:

find . -type f -iname "*.ipynb" | sed 's/\.ipynb$//1'

Per restituire solo nomi di file senza l'estensione, prova:

find . -type f -iname "*.ipynb" -execdir sh -c 'printf "%s\n" "${0%.*}"' {} ';'

o (omettendo -type f d'ora in poi) :

find "$PWD" -iname "*.ipynb" -execdir basename {} .ipynb ';'

oppure:

find . -iname "*.ipynb" -exec basename {} .ipynb ';'

oppure:

find . -iname "*.ipynb" | sed "s/.*\///; s/\.ipynb//"

tuttavia invocando basename su ogni file può essere inefficiente, quindi il suggerimento di @CharlesDuffy è:

find . -iname '*.ipynb' -exec bash -c 'printf "%s\n" "${@%.*}"' _ {} +

oppure:

find . -iname '*.ipynb' -execdir basename -s '.sh' {} +

Per stampare il percorso completo e il nome del file (senza estensione) nella stessa riga, prova:

find . -iname "*.ipynb" -exec sh -c 'printf "%s\n" "${0%.*}"' {} ';'

oppure:

find "$PWD" -iname "*.ipynb" -print | grep -o "[^\.]\+"

Per stampare il percorso completo e il nome del file su righe separate:

find "$PWD" -iname "*.ipynb" -exec dirname "{}" ';' -exec basename "{}" .ipynb ';'

Linux
  1. Omissione dell'estensione con Trova?

  2. Usare "sed" per trovare e sostituire?

  3. Come rinominare più file usando Trova?

  4. trova e copia il file usando Bash

  5. Trovare file eseguibili usando ls e grep

Trova i dettagli del sistema Linux usando Python

Trova testo nei file su Linux usando grep

Linux:come trovare processi utilizzando la porta seriale?

Come rimuovere/eliminare solo file eseguibili (ovvero file senza estensione).

Come eseguire un file senza estensione .sh nella shell

Come trovare solo directory senza sottodirectory?