The message is giving you a clue here. Is there any line in any file under /vob/project that contains a line longer than 2048 chars, which is a limit for some Unix commands?
Try this to count the length of lines in your files
Code:
#!/bin/sh
for file in "$@"; do
echo -e "\nFILE: $file"
awk '{printf( "%5d: %s\n", length( $0 ), $0 ) }' $file
done
Save this as linelength.sh, make it executable, and run it as
$ linelength /vob/project/*
The script will post the length of all lines in all files, regardless of length. To find the lines longer than 2047 chars, try
Code:
#!/bin/sh
for file in "$@"; do
awk -v f=$file '{ if ( length( $0 ) > 2047 ) {
printf( "%s %5d: %s\n", f, length( $0 ), $0 );
}
}' $file
done
and invoke it as above.
If you have a newer version of wc you can try wc -L /vob/project/* (captial L) to show the length of the longest line in each file.
So, assuming your wc supports this,
Code:
#!/bin/sh
MAX_LINE=2047
TEMPFILE=/tmp/out.$$.txt
# first, create temp file with list of files + max line lengths
find . -type f -print | xargs wc -L | grep -v total >> ${TEMPFILE}
while read term
do
while read line
do
max_line=$(echo $line | awk '{print $1}')
filename=$(echo $line | awk '{print $2}')
if [ "$max_line" -lt "$MAX_LINE" ]; then
echo "$filename:" >> ~/$term.txt
grep -i "$term" $filename >> ~/$term.txt
fi
done < ${TEMPFILE}
done < search.strings
rm -f ${TEMPFILE}
Will do what you want, excluding any file from the search that contains a line longer than 2047 chars.
Hi All,
How to search for a string in all the files irrespective of directory.
If I use grep -i 'hello' *.*
It will search for the string hello in the files of current directory.
But I want to check for the string hello in the files of all the directories.
Thanks (4 Replies)
I have ~100 text files in a directory that I am trying to parse and output to a new file. I am looking for the words chr,start,stop,ref,alt in each of the files. Those fields should appear somewhere in those files. The first two fields of each new set of rows is also printed. Since this is on a... (7 Replies)
Hello dears,
In my home directory (msc-loader) there are some files like this:
# ls -l
-rwxrwxrwx 1 user dba 1680318 Jan 20 13:32 103386_s.c
-rwxrwxrwx 1 user dba 256743 Jan 20 13:37 103387_o.c
-rwxrwxrwx 1 user dba 1635363 Jan 20 13:39 103387_s.c
-rwxrwxrwx 1 user dba 264735 Jan 20... (3 Replies)
Hello, I really don't know if this is possible, but I figured the wonderful users of unix.com may be able to provide me with some help/suggestions.
I want to create a (bash) script that would go will accept an input file. That input file contains important information as well as pathnames. For... (4 Replies)
Hi Guys,
I want to search the content of all the files (of a particular type like .txt)
in a directory for a specific string pattern. Can anyone help me?
Thanks (7 Replies)
I need to search for a particular string. This string might be present in many files. The directory in which I am present has more than one subdirectories. Hence, the search should check in all the subdirectories and all the corresponding files and give a list of files which have the particular... (5 Replies)
I was google searching and found
Perl as a command line utility tool
This almost solves my problem:
find . | xargs perl -p -i.old -e 's/oldstring/newstring/g'
I think this would create a new file for every file in my directory tree. Most of my files will not contain oldstring and I... (1 Reply)
Hello my friends,
I need to write a simple shell bad file :D that search and delete a file it's name 'Microsoft.txt' in the current directory and its subdirectories?
So can you help to guide me how i can write this shell, Just give me the beginning :o thank you. (1 Reply)
hi
can i know how to get the file name of any files containing for example "abc" from a number of files in a directory?
i tried "ls -ltrc | grep abc" but no resulted generated.
thanks in advance. (1 Reply)