Argument list too long for Sed command


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Argument list too long for Sed command
# 1  
Old 06-19-2011
Argument list too long for Sed command

Hi guys

Following command results in

Code:
 
sed -i 's/#/\\#/g' /home/test/sqlstents*

Code:
 
-bash: /bin/sed: Argument list too long

Please help me solve it.. is there any other way i can do this?.. thanks
# 2  
Old 06-19-2011
The xargs command deals nicely with long lists of files:

Code:
find /home/test/ -name "sqlstents*" | xargs  sed -i 's/#/\\#/g'

# 3  
Old 06-20-2011
Quote:
Originally Posted by agama
The xargs command deals nicely with long lists of files:

Code:
find /home/test/ -name "sqlstents*" | xargs  sed -i 's/#/\\#/g'

Even longer lists of files with the "-exec" switch of find:
Code:
find /home/test/ -name "sqlstents*" -exec sed -i 's/#/\\#/g'{} \;

# 4  
Old 06-20-2011
Quote:
Originally Posted by kalak
Even longer lists of files with the "-exec" switch of find:
Code:
find /home/test/ -name "sqlstents*" -exec sed -i 's/#/\\#/g'{} \;

The xargs version has no smaller limit than yours, why "longer"? Yours is also less efficient because it runs one instance of sed per file.

some versions of find can use '+' instead of ';' to cram in more arguments per program, though. And I think he'd have that since he has sed -i:

Code:
find /home/test/ -name "sqlstents*" -exec sed -i 's/#/\\#/g'{} '+'

# 5  
Old 06-20-2011
Quote:
Originally Posted by depakjan
Hi guys

Following command results in

Code:
 
sed -i 's/#/\\#/g' /home/test/sqlstents*

Code:
 
-bash: /bin/sed: Argument list too long

Please help me solve it.. is there any other way i can do this?.. thanks
maybe try to using meaningful filter..
for example determine your filters and test if has any argument problem..
Code:
find -name "sqlstents[a-zA-Z]*"

Code:
find -name "sqlstents_[c-f][0-9]*"

after than go
Code:
for i in "[a-zA-Z]*" "_[c-f][0-9]*"; do find -name "sqlstents${i}" -exec sed -i 's/#/\\#/g'{} '+'; done

regards
ygemici
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Argument list too long

Hi Team, Here's the situation. I have approximately 300000 to 500000 jpg files in /appl/abcd/work_dir mv /appl/abcd/work_dir /appl/abcd/process_dir The above move command will work if the jpg files count is close to 50000 (not sure). If the count is less this mv command holds good. But if... (14 Replies)
Discussion started by: kmanivan82
14 Replies

2. Shell Programming and Scripting

sed cannot execute [Argument list too long]

Hi All, This question has been asked many times, but my problem is slightly different. In my shell script i am connecting to oracle database and loading the results to .dat file. This .dat file is later used to create to .xls file Some times the size of .dat file becomes more than 120000... (8 Replies)
Discussion started by: galaxy_rocky
8 Replies

3. UNIX for Advanced & Expert Users

Argument list too long w/ sed

Hi all, I am using GNU sed (named gsed under macports) in OSX. I have a directory with a series of files named pool_01.jpg through pool_78802.jpg. I am trying to use this command to rename the files to their checksum + extension. md5sum * | gsed -e 's/\(*\) \(.*\(\..*\)\)$/mv -v \2 \1\3/e' ... (3 Replies)
Discussion started by: openthomas
3 Replies

4. Shell Programming and Scripting

mv : Argument list too long

Hi I am using find command -- find "directory1" -type f | xargs -i mv {} "directory2" to avoid above argument list too long problem. But, issue i am facing is directory1 is having subdirectories due to this i am facing directory traversal problem as i dont want to traverse subdirectories... (9 Replies)
Discussion started by: VSom007
9 Replies

5. Shell Programming and Scripting

grep : Argument list too long

Hi, i am having some trouble with the below command, can some one suggest me the better way to do it. grep -l 'ReturnCode=1' `find $Log -newer /tmp/Failed.tmp -print | xargs ls -ld | egrep SUB | egrep -ve 'MTP' -ve 'ABC' -ve 'DEF' -ve 'JKL' -ve 'XYZ' | awk '{print $9}'` > $Home1 Its... (2 Replies)
Discussion started by: Prateek007
2 Replies

6. Shell Programming and Scripting

Argument list too long!!

Dear Experts, I have a list of 10K files in a directory. I am not able to execute any commands lile ls -lrt, awk, sed, mv, etc........ I wanna execute below command and get the output. How can I achieve it?? Pls help. root# awk -F'|' '$1 == 1' file_20120710* | wc -l /bin/awk: Argument list... (2 Replies)
Discussion started by: Naga06
2 Replies

7. Shell Programming and Scripting

Argument list too long for date command

Dear Friends, The following script processes a 14508 lines log file. #!/bin/sh while read line do d=`sed 's/* - * \*\/*\/* *\)\] .*/\1/' | tr '/' ' ' | sed 's/\(*\):\(*\)/\1 \2/'` y=`date -d "${d}" "+%Y%m%d%H%M%S"` echo "${y}" done While running the above script, I am... (4 Replies)
Discussion started by: tamil.pamaran
4 Replies

8. Shell Programming and Scripting

Argument list too long problem

I have a huge set of files (with extension .common) in my directory around 2 million. When I run this script on my Linux with BASH, I get /bin/awk: Argument list too long awk -F'\t' ' NR == FNR { a=NR } NR != FNR { sub(".common", "", FILENAME) print a, FILENAME, $1 } '... (1 Reply)
Discussion started by: shoaibjameel123
1 Replies

9. Shell Programming and Scripting

Argument too long list error

I have a wrote a script which consits of the below line.. Below of this script I'm getting this error "ksh: /usr/bin/ls: arg list too long" The line is log_file_time=`ssh -i $HOME/.ssh/id_rsa -q $i ls -lrt /bp/karthik/test/data/log/$abc*|tail -1|awk '{print $8}'` And $abc alias is as "p |... (1 Reply)
Discussion started by: 22karthikreddy
1 Replies

10. Shell Programming and Scripting

command find returned bash: /usr/bin/find: Argument list too long

Hello, I create a file touch 1201093003 fichcomp and inside a repertory (which hava a lot of files) I want to list all files created before this file : find *.* \! -maxdepth 1 - newer fichcomp but this command returned bash: /usr/bin/find: Argument list too long but i make a filter all... (1 Reply)
Discussion started by: yacsil
1 Replies
Login or Register to Ask a Question