bash how to read a single line or filenames with spaces solution


This happens all the time, you are reading from a textfile which has spaces eg:

datainfo 00
datainfo 11

If you do loop on it like this:
for info in `cat $file`; do
  echo "info=$info"
done


It will treat datainfo and 00 as two separate lines:

info=datainfo
info=00

Obviously that's not what we want and there are many weird solutions in bash but I'll try and pick what I feel is the simplest and most practical.

My favorite solution:

The key is setting the IFS as below and changing the default delimiter from space " " to newline or \n. You can use the same code and it tells bash to understand not to see a " " space as a delimiter so only a newline is counted.   In plain English this makes it so files and directories with spaces are interpreted as intended.

IFS=$(echo -en "\n\b")

for info in `cat $file`; do
  echo "info=$info"
done

 

Solution #2
while read -r; do
  line=$REPLY
  id=`echo $line|cut -f 2 -d " "`
  ip=`echo $line|cut -f 1 -d " "`
done < migratelist.txt


Tags:

bash, filenames, spaces, textfile, eg, datainfo, info, echo, quot, solutions, ll, simplest, ifs, default, delimiter, newline, counted, directories, interpreted, en, reply, ip, migratelist, txt,

Latest Articles

  • How to combine .txt ACLs without breaking things
  • How to ping all of Googlebot's IPs script
  • 'virtio0' uses a qcow2 feature which is not supported by this qemu version: QCOW version 3
  • Linux bash script to get the IP of a list of hostnames
  • How To Use Camera Webcam in Docker for OBS Studio etc...
  • Computer Server Won't Post Boot Or Enter BIOS Setup After Installing RAID SAS or GPU Card etc..
  • How To Test PHP Scripts from CLI with GET variables/query string
  • apt-cache how to see all available versions of a package in Debian Ubuntu Mint
  • Virtualbox VBox Guest-utils drag and drop files stops working with Windows VMs
  • How To Remove Ubuntu Netplan and Go Back to /etc/network/interfaces
  • How To Force Flash an AMD Instinct GPU To Another Model Using Debian Ubuntu Mint Linux
  • How To compile ollama from source to use unsupported AMD GPU with rocm in Ubuntu Debian
  • QEMU KVM Virtio GPU Windows Cannot Select 1080P
  • Linux Gnome Desktop Ubuntu Mint Debian Gets Slower After Weeks
  • Firefox How to Save Full Page As Screenshot/PDF
  • Nvidia Datacenter Driver Tesla Slow nvidia-smi response and high utilization with 0 usage
  • ffmpeg how to normalize / increase the volume of your audio
  • kdenlive audio blips pops cracks artifacts solution fix
  • haproxy / nginx certbot SSL issues
  • nginx how to see the real IP when behind a CDN