Skip to main content

escape a single quote and replace with escaped single quote (huh?)

Solution:

[jradtke@neo bin]$ echo $TEMP | sed 's/'\''/'\\\\\''''/g'
./jradtke/Music/Metric/Fantasies/01 Help, I\'m Alive.mp3

Issue:
In an attempt to make my Lenovo tablet and Linux desktop (Fedora 16 with Amarok) experience more like my iPad and Apple desktop (OSX with iTunes) - I am trying to create a script to "sync" everything.  The feature I need most is the ability to sync only my "top rated" music files to my tablet (since I have a 32GB SD card and my music collection is around 60GB).
I figured out how to poll the MySQL database that I configured for Amarok to get the file locations, but some of the locations use a single quote in the filename.  Such as the word "I'm".  See the following:

NOTE: $TMPSYNC is a file which is the result of the query to my Amarok database

#!/bin/bash

MINRATING=7 # Minimum Song rating to sync to TABLET
SQLCMD="SELECT rpath FROM urls WHERE id IN (SELECT id FROM statistics WHERE rating > ${MINRATING});"
TMPSYNC=/tmp/.amarok.toprated.raw.${DATE}
echo ${SQLCMD} | /usr/bin/mysql -u${AMAROKUSER} -p${AMAROKDBPASS} ${AMAROKDB} > ${TMPSYNC}

Then...



[jradtke@neo bin]$ grep -v ^rpath ${TMPSYNC}
./jradtke/Music/Metric/Fantasies/01 Help, I'm Alive.mp3
[jradtke@neo bin]$ TEMP=`grep -v ^rpath ${TMPSYNC}`
[jradtke@neo bin]$ echo $TEMP
./jradtke/Music/Metric/Fantasies/01 Help, I'm Alive.mp3
[jradtke@neo bin]$ echo $TEMP | sed 's/'\''//g'
./jradtke/Music/Metric/Fantasies/01 Help, Im Alive.mp3
[jradtke@neo bin]$ echo $TEMP | sed 's/'\''/?/g'
./jradtke/Music/Metric/Fantasies/01 Help, I?m Alive.mp3

# THE FOLLOWING WILL REPLACE A TICK, WITH A... TICK
[jradtke@neo bin]$ echo $TEMP | sed 's/'\''/'\''/g'
./jradtke/Music/Metric/Fantasies/01 Help, I'm Alive.mp3

# FINALLY... WE GET TO THE FINAL DEST
[jradtke@neo bin]$ echo $TEMP | sed 's/'\''/'\\\\\''''/g'
./jradtke/Music/Metric/Fantasies/01 Help, I\'m Alive.mp3


Comments

Popular posts from this blog

PXE boot a LiveCD image

Summary: I have wanted to build a kickstart environment which hosted a "rescue CD" or LiveCD to allow you to boot over the network after you blew your stuff up and needed to repair a few things.  Today I have worked through a method of doing so, with the help of the people who published a succinct script with the Red Hat Enterprise Virtualization Hypervisor.  (the script will be at the bottom of this post - if I have somehow not followed the GPL, please let me know and I will correct whatever is necessary) NOTE/Warning: The boot will fail due the initrd being too large (645mb).  I'm not sure how to proceed.  This procedure worked for RHEVh, because it is quite a bit smaller.  Hopefully I can report back with progress on this? :-$ Procedure: download your LiveCD image to /export/isos/RESCUE/Fedora-16-i686-Live-Desktop.iso # cd /var/tmp # vi livecd-iso-to-pxeboot (populate the file with the script shown below) # chmod 754 ./livecd-iso-to-pxeb...

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)"

"Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)" One issue that may cause this to arise is if you managed to break your /etc/fstab We had an engineer add a line with the intended options of "nfsvers=3" but instead added "-onfsvers=3" and it broke the system fairly catastrophically.

P2V using dd for KVM-QEMU guest

Preface: I have certainly not exhaustively tested this process.  I had a specific need and found a specific solution that worked. Situation:  I was issued a shiny new laptop running Red Hat Enterprise Linux 7 (with Corp VPN, certs, Authentication configuration, etc...)  The image was great, but I needed more flexibility on my bare metal.  So, my goal was to P2V the corporate image so I could just run it as a VM. * Remove corporate drive and install new SSD * install corp drive in external USB-3 case * Install RHEL 7 on new SSD * dd old drive to a disk-image file in a temp location which will be an image which is the same size as your actual drive (unless you have enough space in your destination to contain a temp and converted image) * convert the raw disk-image to a qcow file while pushing it to the final location - this step should reduce the disk size - however, I believe it will only reduce/collapse zero-byte blocks (not just free space - i.e. if you de...