Grep and replacing with ..


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Grep and replacing with ..
# 1  
Old 11-19-2014
Grep and replacing with ..

Hi I'm trying trying to replace '~/Documents/research/racedata' with '..' in all files in a directory. What is the best way I should go about this? Thanks.
# 2  
Old 11-19-2014
Look at sed.

e.g something like:
Code:
sed 's#~/Documents/research/racedata#..#g' file

# 3  
Old 11-19-2014
So why does

Code:
sed -i 's#~/Documents/research/racedata#..#g' csdbayes_simple.r

give me the error

Code:
sed: 1: "csdbayes_simple.r": command c expects \ followed by text

? Thanks!

Last edited by Corona688; 11-19-2014 at 05:28 PM..
# 4  
Old 11-19-2014
sed is apparently misinterpreting your filename because it starts with a c. c\ is a sed command.

Try prefixing your filename with a path:
./csdbayes_simple.r
~/csdbayes_simple.r
/home/user/csdbayes_simple.r
# 5  
Old 11-19-2014
Quote:
Originally Posted by Jane Yi
So why does

Code:
sed -i 's#~/Documents/research/racedata#..#g' csdbayes_simple.r

give me the error

Code:
sed: 1: "csdbayes_simple.r": command c expects \ followed by text

? Thanks!
You haven't said what OS you're using, but some versions of sed require an option argument with the -i option. In this case it looks in this case, your sed substitution command is being interpreted as a filename extension to be used for your backup file and your filename is being interpreted as an invalid sed command.

Try:
Code:
sed -i '.backup' 's#~/Documents/research/racedata#..#g' csdbayes_simple.r

or, if you like to live dangerously and risk losing all of your data,
Code:
sed -i '' 's#~/Documents/research/racedata#..#g' csdbayes_simple.r

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Double grep and replacing

Hi All, I need to replace a match with are new values when there is a double match. grep 04422494 MAX.dat | grep 1102300131 I need to replace 1102300131 as 1101600131 in MAX.dat only for the record matching 04422494 . I tried replace as sed/s/1102300131 /1101600131 /g MAX.dat ... (3 Replies)
Discussion started by: arunkumar_mca
3 Replies

2. Shell Programming and Scripting

Inconsistent `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l`

i have this line of code that looks for the same file if it is currently running and returns the count. `ps -eaf -o args | grep -i sfs_pcard_load_file.ksh | grep -v grep | wc -l` basically it is assigned to a variable ISRUNNING=`ps -eaf -o args | grep -i sfs_pcard_load_file.ksh |... (6 Replies)
Discussion started by: wtolentino
6 Replies

3. UNIX for Dummies Questions & Answers

Piping grep into awk, read the next line using grep

Hi, I have a number of files containing the information below. """"" Fundallinfo 6.3950 14.9715 14.0482 """"" I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies

4. Shell Programming and Scripting

Replacing grep with awk

how to replace grep with awk commands. i have a code like: grep -w $student $markfile|$subjectid can similar code be written by replacing grep with awk. Thanks in advance, regards, giri (6 Replies)
Discussion started by: girijan
6 Replies

5. UNIX for Dummies Questions & Answers

Bash - CLI - grep - Passing result to grep through pipe

Hello. I want to get all modules which are loaded and which name are exactly 2 characters long and not more than 2 characters and begin with "nv" lsmod | (e)grep '^nv???????????? I want to get all modules which are loaded and which name begin with "nv" and are 2 to 7 characters long ... (1 Reply)
Discussion started by: jcdole
1 Replies

6. Shell Programming and Scripting

AWK/GREP: grep only lines starting with integer

I have an input file 12.4 1.72849432773174e+01 -7.74784188610632e+01 12.5 9.59432114416327e-01 -7.87018212757537e+01 15.6 5.20139995965960e-01 -5.61612429666624e+01 29.3 3.76696387248366e+00 -7.42896194101892e+01 32.1 1.86899877018077e+01 -7.56508762501408e+01 35 6.98857157014640e+00... (2 Replies)
Discussion started by: chrisjorg
2 Replies

7. UNIX for Dummies Questions & Answers

Replacing grep with awk

This may be a repetitive or simple question, but I have a long running code, which uses a grep with a big argument, and i was wondering if there was a way to replace all of my greps with awk....here are my two commands using greps. x=$(ls /my/directory/here | grep -h ".$variable") and ... (1 Reply)
Discussion started by: jgrosecl
1 Replies

8. UNIX for Dummies Questions & Answers

| help | unix | grep (GNU grep) 2.5.1 | advanced regex syntax

Hello, I'm working on unix with grep (GNU grep) 2.5.1. I'm going through some of the newer regex syntax using Regular Expression Reference - Advanced Syntax a guide. ls -aLl /bin | grep "\(x\)" Which works, just highlights 'x' where ever, when ever. I'm trying to to get (?:) to work but... (4 Replies)
Discussion started by: MykC
4 Replies

9. UNIX for Dummies Questions & Answers

| help | unix | grep - Can I use grep to return a string with exactly n matches?

Hello, I looking to use grep to return a string with exactly n matches. I'm building off this: ls -aLl /bin | grep '^.\{9\}x' | tr -s ' ' -rwxr-xr-x 1 root root 632816 Nov 25 2008 vi -rwxr-xr-x 1 root root 632816 Nov 25 2008 view -rwxr-xr-x 1 root root 16008 May 25 2008... (7 Replies)
Discussion started by: MykC
7 Replies

10. Shell Programming and Scripting

MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else

Hi Guys, I need to set the value of $7 to zero in case $7 is NULL. I've tried the below command but doesn't work. Any ideas. thanks guys. MEM=`ps v $PPID| grep -i db2 | grep -v grep| awk '{ if ( $7 ~ " " ) { print 0 } else { print $7}}' ` Harby. (4 Replies)
Discussion started by: hariza
4 Replies
Login or Register to Ask a Question