Sponsored Content
Top Forums Shell Programming and Scripting How to delete all lines with less then 32 characters from a textfile? Post 302399138 by Ultrix on Friday 26th of February 2010 11:45:22 AM
Old 02-26-2010
Quote:
Originally Posted by alister
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.

Last edited by Ultrix; 02-26-2010 at 01:10 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to delete lines in a file that have duplicates or derive the lines that aper once

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)
Discussion started by: necroman08
3 Replies

2. Shell Programming and Scripting

Detect lines beginning with double-byte characters (Japanese) and delete

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)
Discussion started by: ubbeauty
8 Replies

3. UNIX for Dummies Questions & Answers

How get only required lines & delete the rest of the lines in file

Hiiii I have a file which contains huge data as a.dat: PDE 1990 1 9 18 51 28.90 24.7500 95.2800 118.0 6.1 0.0 BURMA event name: 010990D time shift: 7.3000 half duration: 5.0000 latitude: 24.4200 longitude: 94.9500 depth: 129.6000 Mrr: ... (7 Replies)
Discussion started by: reva
7 Replies

4. Shell Programming and Scripting

Find a string in textfile, erase $num lines after that string

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)
Discussion started by: ilcsfe
6 Replies

5. UNIX for Advanced & Expert Users

In a huge file, Delete duplicate lines leaving unique lines

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)
Discussion started by: krishnix
16 Replies

6. Shell Programming and Scripting

search and replace, when found, delete multiple lines, add new set of lines?

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)
Discussion started by: DeuceLee
3 Replies

7. Shell Programming and Scripting

Sed/awk to delete single lines that aren't touching other lines

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)
Discussion started by: slimjbe
6 Replies

8. Shell Programming and Scripting

Cut lines from and to in a textfile

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)
Discussion started by: suryanarayana
1 Replies

9. Shell Programming and Scripting

How to separate sorte different characters from one textfile and copy them in a new textfile?

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)
Discussion started by: schwatter
3 Replies

10. Shell Programming and Scripting

Replicating certain lines in a textfile

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
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)
All times are GMT -4. The time now is 04:33 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy