escaping metacharacters in paths for a shell command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting escaping metacharacters in paths for a shell command
# 1  
Old 03-27-2012
escaping metacharacters in paths for a shell command

I have a file which contains a list of paths separated by a new line character.

e.g

Code:
/some/path/to/a/file.png
/some/path to/another/file.jpeg
/some path/to yet/another/file

Notice that these paths may contain metacharacters, the spaces for example are also not escaped.

If I wanted to use this list in a command which allows multiple paths as input what would be the best way to do this?

for example the command

Code:
montage "/some/path/to/a/file.png" "/some/path to/another/file.jpeg" "/some path/to yet/another/file"

I thought about using awk to replace the newline characters with quotation marks. Is there a nice clean way of doing this.
# 2  
Old 03-27-2012
Hello cue
You may use sed and tr for achieving this goal.
Try something like:

Code:
sed 's/^/"/ ; s/$/"/' file.txt  | tr "\n" " " > newfile.txt

By doing that, newfile.txt has all the paths from file.txt which are escaped by quotation marks and separated by a whitespace.
Hope it helps.
This User Gave Thanks to chapeupreto For This Post:
# 3  
Old 03-28-2012
use
Code:
sed 's/^/"/ ; s/$/"/' file.txt  | tr -d "\n"  > newfile.txt

This User Gave Thanks to pandeesh For This Post:
# 4  
Old 03-28-2012
thanks pandeesh and chapeupreto. Can I also ask, what is the best way of then using that newly created file list in a command?

ImageMagick • View topic - montage list of images
would that read the list automatically from the newly formatted file?

Last edited by cue; 03-28-2012 at 04:13 PM.. Reason: Edit: autocomplete or autocorrect changed pandeesh to panda fresh. Sorry.
# 5  
Old 03-28-2012
Alternatively, try:
Code:
oldIFS=$IFS IFS="
"
montage $(cat file.txt)
IFS=$oldIFS

Or modify you script so that is can also read an input file with a command line option...

Last edited by Scrutinizer; 03-28-2012 at 02:33 AM..
# 6  
Old 03-28-2012
Maybe you could do the following:
Code:
files=$(< newfile.txt)
montage "$files"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Help with bash escaping while using screen command

Hello, everyone. I'm currently trying to write a command system for a Minecraft server using screen. Here are the scripts I'm currently using. 0.sh #!/bin/bash screen -S Test114 -dm java -Xmx4G -jar server.jar nogui 1.sh #!/bin/bash args="$@" args2="${args@Q}" #args3=`printf '%q\n'... (2 Replies)
Discussion started by: Develon
2 Replies

2. UNIX for Dummies Questions & Answers

Command line not recognizing metacharacters in awk

Hello, I'm new to command line coding (and coding in general) and have run into a problem. I'm using awk to perform a global find and replace in a text file in the Terminal provided by Mac. Here is a sample of my textfile where the fields are separated by tabs. 1Ps 1,1 VWB/(J VWB VWB... (7 Replies)
Discussion started by: jvoot
7 Replies

3. Shell Programming and Scripting

Bash Vs. Bourne REGEX: metacharacters escaping

I am currently reading a very old reference from O'Reilly: Sed and Awk 2nd Edition reprinted in 2000. So far, it's a solid read and still very relevant. I'd highly recommend this to anyone. The only problem I have with this book is that I had to resort to bourne shell to get my examples to work... (3 Replies)
Discussion started by: ConcealedKnight
3 Replies

4. Shell Programming and Scripting

Escaping problem in a shell script

Hi, i made a gnuplot script which accepts a filename as parameter (using gnuplot -e) now i want to run this script from a shell script, the correct command (with a concrete parameter) looks like this: gnuplot -e 'name="filename.dat;col=2"' gplscript.gpl my shell script looks like this: ... (4 Replies)
Discussion started by: franko007
4 Replies

5. Shell Programming and Scripting

awk - ignore metacharacters, search shell variables

Can I use awk to search for a string, passed from the shell, that might include metacharacters? File1 entries: Bob Marley Jammin (Bonus Track).mp3 File2 entries: Bob Marley Jammin (Bonus Track).mp3 32000 /Music/Bob Marley/ Jammin (Bonus Track).mp3 So far, I have this; $ sed -e... (9 Replies)
Discussion started by: DSommers
9 Replies

6. UNIX for Dummies Questions & Answers

The ll command + metacharacters

Hello. I am learning how to use Unix through an online course. Unfortunately the text that we use isn't very good, so I could use some help with a pretty basic question. Use metacharacters and the ll command to list all filenames under the datafiles directory that contain a dot "." with the... (2 Replies)
Discussion started by: feverdream
2 Replies

7. Shell Programming and Scripting

escaping backslashes to evaluate paths

Hi there, i am struggling with this one, basically i want to replace an existing path string in a file with a new one, but the new one contains slashes which causes problems with "sed", i thought i could change the replacement string into a variable but of course when the variable is evaluated... (4 Replies)
Discussion started by: surfbus78
4 Replies

8. Shell Programming and Scripting

Escaping apostrophe using shell script

Hi, I am using the KSH shell. I am facing a problem of escaping apostrophe('), that is occuring in a variable. I used the following command, but in vain item=`echo $item|sed 's/&apos;/\'/g'` this code replaces the occurance of &apos; in an xml file to apostrophe(') symbol. The output of... (2 Replies)
Discussion started by: mradul_kaushik
2 Replies

9. Shell Programming and Scripting

escaping * in korn shell

When trying to escape special character * - it doesn't seem to work. In korn shell trying to store a local variable as follows sample=test* echo $sample - gets all the file names starting with test* , instead i want to literally store the value test* into a variable. I tried escaping with \, with... (3 Replies)
Discussion started by: prekida
3 Replies

10. UNIX for Dummies Questions & Answers

ctrl-c: not escaping command

using ksh on HP 11.11. I'm new to HP, so maybe it's something I need to turn on in HP, but I figured it's probably in ksh. If I run "grep aaa" (or any command) Whenever I try to Ctrl-C it does not work. I'm not saying it did work before, as I'm new to the environment. Do I need to set a... (3 Replies)
Discussion started by: dangral
3 Replies
Login or Register to Ask a Question