Sed pour copyr une partie du nom du file dans un autre contenu du file avec la même sous-string

Pour chaque file avec l'extension spécifiée dans un directory, je voudrais utiliser juste une sous-string à partir du nom de file pour l'append à un autre file et le sortir comme un file avec une extension différente mais la même sous-string.

J'ai trouvé des exemples similaires à ce que je voudrais faire, mais je suis en train d'écrire un script bash, j'ai donc rencontré quelques défis dont j'ai eu du mal à find des exemples.

Par exemple, je commencerais avec filename.sample et je veux seulement la sous-string "nom de file".

Ce que j'ai essayé de faire est:

for i in /path/to/*.sample do bar="${i%%.sample*}" sed "s/^>\(.*\)/>\1;label=${bar##*/};/" "$i" > "$i"_bar \; done 

Le contenu des files *.sample est le suivant:

 *.sample > MEWFJWRNFF_141 AB28974UJBDASX 

La sortie désirée est:

 Output_bar > MEWFJWRNFF_141; label=filename; AB28974UJBDASX 

Faites-moi savoir si je n'ai pas été clair en aucune façon! Je vous remercie!

 for i in /path/to/*.sample do str="; label=$(basename -s.sample $i);" sed "/^>/ s/$/$str/" "$i" done 
  • basename command basename donne seulement le nom du file, dépouillant le path. Et -s.sample l'extension
  • Donc, si i /path/to/filename.sample , str contiendra ; label=filename; ; label=filename;
  • /^>/ s/$/$str/ finda une ligne commençant par > et appenda le contenu de la variable str à la fin de cette ligne

Je ne comprends pas comment vous voulez que le file de sortie soit nommé. Si i /path/to/filename.sample , "$i"_bar donnera / /path/to/filename.sample_bar