Ho file in una directory. Ho bisogno di aggiungere una nuova riga e il nome del file alla fine di ogni file.Bash, riga di accodamento alla fine di ogni file
5
A
risposta
7
Questo dovrebbe fare:
for f in *; do echo >> $f; echo $f >> $f; done
primo eco di una nuova linea, then echo il nome del file.
Il
>>
dice "aggiungi alla fine del file".
0
Edit: La risposta di aioobe è stata aggiornata per mostrare la bandiera -e che non ho visto quando ho risposto prima questo. Così ora sto solo mostrando un esempio che include una directory e come eliminare il nome della directory:
#!/bin/bash
for fn in dir/*
do
shortname=${fn/#*\//}
echo -e "\n$shortname" >> $fn
done
Se si desidera che il nome della directory, prendere la linea shortname=${fn/#*\//}
e sostituire $ shortname con $ fn nell'eco .
0
Lasciate xargs
fare il looping:
# recursive, includes directory name
find -type f -print0 | xargs -0 -I% bash -c 'echo -e "\n%" >> %'
o
# non-recursive, doesn't include directory name
find -maxdepth 1 -type f -exec basename {} \; | xargs -I% bash -c 'echo -e "\n%" >> %'
o
# non-recursive, doesn't include directory name
find -maxdepth 1 -type f -printf "%f\0" | xargs -0 -I% bash -c 'echo -e "\n%" >> %'
o
# recursive, doesn't include directory name
find -type f -print0 | xargs -0 -I% bash -c 'f=%; echo -e "\n${f##*/}" >> %'
0
Un altro metodo utilizza ex
(o vim):
ex -c 'args **/*' -c 'set hidden' -c 'argdo $put =bufname(".")' -c 'wqa'
Problemi correlati
- 1. aggiungere testo alla fine di ogni riga
- 2. Bash come aggiungere la parola alla fine di una riga?
- 3. script di Unix aggiunge^M alla fine di ogni riga
- 4. L'aggiunta dei caratteri alla fine di ogni riga in Emacs
- 5. Segno di dollaro alla fine di ogni riga
- 6. Aggiungere una virgola alla fine di ogni riga utilizzando php
- 7. File batch per aggiungere caratteri all'inizio e alla fine di ogni riga nel file txt
- 8. bash sostituire primo carattere di ogni riga
- 9. Aggiungere un carattere di riga alla fine del file in bash
- 10. Copia e incolla in Eclipse aggiunge una nuova riga alla fine di ogni riga incollata
- 11. Come utilizzare la sostituzione di bash per aggiungere una nuova riga alla fine di ogni elemento di una lista
- 12. bash lista sorta di stringhe per numero alla fine
- 13. script di shell aggiungi suffisso ogni riga
- 14. Come aggiungere un personaggio alla fine di ogni riga con awk?
- 15. Come elaborare ogni altra riga in bash
- 16. Appendi un testo alla fine di più file in Linux
- 17. Gedit aggiunge la riga alla fine del file
- 18. Notepad ++ Ricerca/sostituzione RegEx: come aggiungere e anteporre un carattere all'inizio e alla fine di ogni riga di file?
- 19. linee di stampa in file dalla riga partita fino alla fine del file di
- 20. Come posso aggiungere una stringa alla fine di ogni riga in Vim?
- 21. Come aggiungere del testo alla fine di ogni riga in Vim?
- 22. Come aggiungere una nuova riga alla fine di file.write()?
- 23. Come abbinare il modello alla fine della riga/testo
- 24. -bash: sostituzione di comando: riga XX: errore di sintassi: fine del file imprevisto
- 25. Bash: trova i file con spazi finali alla fine delle righe
- 26. OptionParser - supportare qualsiasi opzione alla fine della riga di comando
- 27. Vim commento continuazione alla fine della riga
- 28. Selezione automatica numerazione riga fino alla fine
- 29. Aggiunta alla fine della riga in eclissi
- 30. Bash - come mettere ogni riga all'interno di citazione
che non aggiunge il ritorno a capo richiesto prima del nome del file. – MForster
risposta aggiornata. – aioobe
Cosa succede se il nome del file contiene \? 'printf '\ n% s \ n'" $ f "' – ephemient