Did you test it with filenames containing IFS characters? Assuming a default IFS value, your option handling, sed invocations, and cat statement will all barf if a filename contains whitespace.
Code:
for opt in $*
should be
Code:
for opt in "$@"
All instances of $3 need to be double-quoted.
Alister
Okay, I'll change that then.
EDIT: I fixed the script. It now looks like this:
Code:
#!/bin/bash
# deletes lines of a certain range length from a file
# Writing the result to the file is optional.
write="no";
for opt in "$@"
do
case "$opt" in
-w ) write="yes";
shift;;
-* ) shift;;
* );;
esac
done
least=$1;
great=$2;
shift;
shift;
filname="$*";
if [ $write == "yes" ]
then
sed -e "/^.\{$least,$great\}$/d" "$filname" > tempfile.txt;
cat tempfile.txt > "$filname";
rm tempfile.txt;
else
sed -e "/^.\{$least,$great\}$/d" "$filname";
fi
unset write
All I did was put quotation marks around the filename. I was also able to fix another script that I wrote a while back which was having the same problem.
Actually I've found I don't have to use "$@". It works whether I use that or $*. The quotation marks were the only problem.
Input:
a
b
b
c
d
d
I need:
a
c
I know how to get this (the lines that have duplicates) :
b
d
sort file | uniq -d
But i need opossite of this. I have searched the forum and other places as well, but have found solution for everything except this variant of the problem. (3 Replies)
Greetings,
I want to use a script (preferably awk) which determines if the first character in a line is double-byte (as in Japanese or Chinese) and deletes it.
For example:
(in the above quote, I see Japanese on my screen for two lines - with 2 characters in the first and 3 characters in the... (8 Replies)
I have a textfile containing text similar to the following pattern:
STRING1
UNIQUE_STRING1
STRING2
STRING3
STRING4
STRING5
STRING1
UNIQUE_STRING2
STRING2
STRING3
STRING4
STRING5
STRING1
UNIQUE_STRING3
STRING2
STRING3 (6 Replies)
Hi All,
I have a very huge file (4GB) which has duplicate lines. I want to delete duplicate lines leaving unique lines. Sort, uniq, awk '!x++' are not working as its running out of buffer space.
I dont know if this works : I want to read each line of the File in a For Loop, and want to... (16 Replies)
hey guys,
I tried searching but most 'search and replace' questions are related to one liners.
Say I have a file to be replaced that has the following:
$ cat testing.txt
TESTING
AAA
BBB
CCC
DDD
EEE
FFF
GGG
HHH
ENDTESTING
This is the input file: (3 Replies)
Hello,
I'm trying to figure out how to use sed or awk to delete single lines in a file. By single, I mean lines that are not touching any other lines (just one line with white space above and below).
Example:
one
two
three
four
five
six
seven
eight
I want it to look like: (6 Replies)
i am having a text file like below
rama
surya
pandu
latha
singh
raja
i want to get the new file from 3 to 5
i.e
pandu
latha
singh
please help (1 Reply)
My first post, so don't kill me :)
Say i open some textfile with some example like this.
on the table are handy, bread and wine
Now i know exactly what is in and i want to separate and sorted it in terminal to an existing file with another 2 existing lines in like this:
table
plane ... (3 Replies)
I am very new to to shell scripting and facing a problem that I can't seem to solve. I want to write a bash script that edits file1.txt and saves it as file2.txt.
This is what the files should look like:
file1:
textline1
textline2
startCopy
copyThis
endCopy
textline3
textline4
file2:
... (6 Replies)
Discussion started by: sandy90
6 Replies
LEARN ABOUT DEBIAN
bfbtester
BFBTESTER(1) General Commands Manual BFBTESTER(1)NAME
bfbtester - Brute Force Binary Tester
SYNOPSIS
bfbtester [-htv] [-d level] [-r rejects] [-o out-file] [-x max-execs] -a|[-sme] files ...
DESCRIPTION
BFBTester is great for doing quick, proactive, security checks of binary programs. BFBTester will perform checks of single and multiple
argument command line overflows as well as environment variable overflows. BFBTester can also watch for tempfile creation activity to alert
the user of any programs using unsafe tempfile names. While BFBTester can not test all overflows in software, it is useful for detecting
initial mistakes that can red flag dangerous software.
OPTIONS
You must specify one or more of the following tests:
-s Single Argument Test.
-m Multiple Argument Test.
-e Environment Variable Test.
-a Selects all tests
Other options:
-h Print help.
-t Enable tempfile monitoring.
-v Print version string.
-d level
Set debug level (default = 0, max = 2).
-r rejects
Comma separated list of binaries to skip.
-o out-file
Output to out-file rather than stdout.
-x max-execs
Set maximum executables to run in parallel (default = 250).
file Specific binary or a directory of binaries to test.
OVERVIEW
You must specify at least one test to run and you must specify either a binary or a directory.
Executable selection is now done in one of several ways:
If the executable filename is specified with a leading slash (an absolute path), no selection is used and the supplied absolute filename is
used.
If there is no leading slash in the filename the selection is made in one of two ways (in this order):
1) Prepend file name with $PWD and test accesiblity
2) Search through $PATH and find first accessible executable The first one to succeed is the executable choosen.
If the filename found is a directory, we walk the directory (one level deep) looking for executable binaries.
Symbolic links are followed.
You can specify binaries to skip (useful when loading a whole directory) by using the -r option.
The following is a crash report:
*** Crash </usr/bin/patch> ***
args: -D [05120]
envs: (null)
Signal: 11 ( Segmentation fault )
Core? Yes
This means "/usr/bin/patch" crashed when fed with an "-D" and a word 5,120 characters long:
$ /usr/bin/patch -D AAA...5,120 characters...AAA
(Numbers in brackets mean replace with a word that many characters long)
BFBTester is very CPU intensive, and will open many files, so you probably don't want to run it on a production machine during it's busiest
period. Just a warning...
EXAMPLES
bfbtester -s /usr/bin
Run the single argument test on all binaries in folder /usr/bin.
bfbtester -ta patch traceroute
Run all tests against patch and traceroute and run the tempfile monitor.
bfbtester -a ./bfbtester
Tests bfbtester (provided it's in the same directory).
bfbtester -r kill /usr/bin/kill
Does nothing.
AUTHOR
This manual page was written by Karl Soderstrom <ks@debian.org>, for the Debian GNU/Linux system (but may be used by others).
januari 23, 2001 BFBTESTER(1)