bash string substitution

so in this case we have files named like this: 

track01.cdda.wav.mp3  track06.cdda.wav.mp3  track11.cdda.wav.mp3
track02.cdda.wav.mp3  track07.cdda.wav.mp3  track12.cdda.wav.mp3
track03.cdda.wav.mp3  track08.cdda.wav.mp3  track13.cdda.wav.mp3
track04.cdda.wav.mp3  track09.cdda.wav.mp3
track05.cdda.wav.mp3  track10.cdda.wav.mp3

but we want to rename them so they are like "05.mp3"

#the first "track" is actually a variable name but does not need $ because it is already referenced by the ${track
for track in `ls *.mp3`; do name=${track/track/}; name=${name/.cdda.wav/}; mv $track $name; done

The main part of the code above is the following:

name=${track/track/}

name=${name/.cdda.wav/}

${track is the name of the variable that has the string you want to substitute

/track/ means search for the string "track" in that variable and replace with nothing.

If we had wanted to change it to something else:

name=${track/track/somethingelse}
 


Tags:

bash, substitutionso, cdda, wav, mp, rename, quot, variable, referenced, ls, mv, substitute, somethingelse,

Latest Articles

  • VMWare Pro Workstation Nic Disconnected and No IP Using NAT
  • Linux How To Create A RamDisk
  • mdadm force resync when resync=PENDING solution
  • Proxmox Breaks Storage/LVM Backing If Killing QEMU-IMG
  • Proxmox trying to acquire lock... TASK ERROR: can't lock file '/var/lock/qemu-server/lock-102.conf' - got timeout
  • Debian 9 SSH root password authentication failure password not working problem / solution
  • QEMU / KVM How To Manually Create Basic Virtual Machine VM
  • Linux wlan0 check all wireless clients
  • PHP Issues With Decoding Strange Smart Quotes And Non-Standard ASCII Characters
  • /etc/iproute2/rt_tables default settings file in Linux Centos 6,7 and most other NIX's
  • bind named error solutions named[2169]: error (no valid DS) resolving / error (broken trust chain) resolving / : error (no valid RRSIG) resolving 'com/DS/IN':
  • iptables how to log ALL dropped incoming packets
  • How To Edit Linux Based NM Network Manager Connection Settings Without GUI
  • Linux Disable IPV6 Centos / Debian / Mint Howto
  • Linux use growisofs to burn a larger file on a BD-R / Bluray Disc
  • Linux partprobe/partx cannot access last and 4th partition
  • DRBD Errors Caused By Physical Corruption
  • mdadm: add new device failed for /dev/sdb4 as 3: Invalid argument solution
  • Linux named / bind how to dump, view and clear the cache!
  • Centos 6 / 7 / 8 How To Change Default nameservers in /etc/resolv.conf when using DHCP / dhclient