Visit Our UNIX and Linux User Community


Wildcards in VI


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Wildcards in VI
# 1  
Old 01-03-2002
Network Wildcards in VI

I'm trying to delete lines from a large text file using VI.
Every line that I am wanting to delete start with 'S' - all others do not. (A list of users)

I've tried using * but doesn't seem to like it...any ideas...

Doesn't have to be VI - but I'm better with VI than sed/awk.
# 2  
Old 01-03-2002
Ah...ooops...there are some that do start with S....

But all those that start with S[0-9] should be removed - those that start S[A-Z] should remain.

Also another way might be looking for any rows with [0-9] appearing in them anywhere - as these too will satisfy the criteria.

.....

Smilie
# 3  
Old 01-03-2002
Quote:
Originally posted by peter.herlihy
Ah...ooops...there are some that do start with S....

But all those that start with S[0-9] should be removed - those that start S[A-Z] should remain.

Also another way might be looking for any rows with [0-9] appearing in them anywhere - as these too will satisfy the criteria.

.....

Smilie
I couldn't find any simple way of a mass deletion in vi using a regexp, but I am sure that somebody out there has that knowledge...

How about using :

Code:
grep -v "^S[0-9].*" oldfile > newfile

The file, newfile will be devoid of entries that start with S[0-9].

I use `grep -v` all the time to remove undesired entries from logfiles and it normally works like a champ.
# 4  
Old 01-03-2002
D'oh!

I saw this message in another thread from J.P.:

Quote:
Originally posted by J.P
You can also use this command in Elvis, it should work in Vi too probably Smilie

:g/^$/d

This deletes all blank lines

/
JP Smilie
You can use :g/^S[0-9].*/d to perform the mass deletion in vi. I thought there was a way to do it but couldn't remember /g, only %s for mass subsitutions! Smilie
# 5  
Old 01-04-2002
Quote:
Also another way might be looking for any rows with [0-9] appearing in them anywhere - as these too will satisfy the criteria.
Well, if you're looking for anything with numbers in the name ([0-9]), why bother looking for line beginning with S AND having a number in it? Why not simply remove any line with a number in it?

:g/.*[0-9].*/d

Similar to the above, it will remove any line with a number embedded in there...
# 6  
Old 01-06-2002
Cool.... the answer I was looking for was how to use the wildcard ....which I can see is used by preceeding with a dot.

The rest is a peice of cake...and yeah - I did it with the numbers only - which became apparent as I worked through it. Thanks all.
# 7  
Old 01-07-2002
Lightbulb delete from the beginning of the line

Pete,

If you want to delete a specific recurring pattern at the beginning of the line you can use the "^". Or use the $ for patterns at the end of the line.

:g /^S[0-9]/d

This will work for deleting lines that begin that way.

Smilie
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #45
Difficulty: Easy
IEEE 802.11 specifies bluetooth networks.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Wildcards and exceptions

Hello: I have a very basic question. I'd like to select all files except for one file. For example, say I want to move all of the files in my current directory to a subdirectory called archive, I would use mv ./* archive/ But what if I want to move all files except for README.txt? Is there an... (19 Replies)
Discussion started by: Danny.Boy
19 Replies

2. Shell Programming and Scripting

Using Wildcards in scp

to scp using windcards you use the following : scp 'hostname:/home/username/diff_201110*' . Enjoy ! (0 Replies)
Discussion started by: phpsnook
0 Replies

3. UNIX for Dummies Questions & Answers

For loop with wildcards

Hi, I've got a ksh for loop with wildcards specified, and I want the wildcards to be preserved when inside the loop. Instead, it is expanding the wilcards and identifying filenames in the current directory #!/usr/bin/ksh list="a* b*" for i in ${list} do echo 'Loop value =' ${i} done... (2 Replies)
Discussion started by: nim
2 Replies

4. UNIX for Advanced & Expert Users

ln -s accept wildcards?

Does ln -s accept wildcards? It doesn't seem like it is working when I use wildcards. (9 Replies)
Discussion started by: cokedude
9 Replies

5. UNIX for Advanced & Expert Users

Wildcards

These 2 websites do a GREAT job of explaining different types of wildcards. I learned about the categories of characters which I never knew about at all. GNU/Linux Command-Line Tools Guide - Wildcards GREP (1 Reply)
Discussion started by: cokedude
1 Replies

6. UNIX for Dummies Questions & Answers

SED and wildcards

I am using this code to locate and modify one particular ID in a file containing thousands of entries sed 's/^>OldID/>NewID/g' Infile > Outfile How can I modify the code so I can rename all old IDs to a new unique ID? I tried this sed 's/^>*/>NewID/g' Infile > Outfile but it did not... (10 Replies)
Discussion started by: Xterra
10 Replies

7. UNIX for Dummies Questions & Answers

wildcards NOT

Hi All Please excuse another straightforward question. When creating a tar archive from a directory I am attempting to use wildcards to eliminate certain filetypes (otherwise the archive gets too large). So I am looking for something along these lines. tar -cf archive.tar * <minus all *.rst... (5 Replies)
Discussion started by: C3000
5 Replies

8. UNIX for Dummies Questions & Answers

ls with wildcards

ok, I'm trying to write a script file that lists files with specific elements in the name into a txt file, it looks like this ls s*.dat > file_names.txt can't figure out whats wrong with that line, any ideas? thanks in advance (10 Replies)
Discussion started by: benu302000
10 Replies

9. UNIX for Dummies Questions & Answers

wildcards

when writing a shell script (bourne) and using a unix command like 'ls' is there anything special you need to do to use a wildcard (like *)? (3 Replies)
Discussion started by: benu302000
3 Replies

10. Programming

Makefile wildcards

Using a makefile I want to compile all .c files in the current directory without specifying them directly and then link their associated .o files into a library. How do I do this ? Thanks. (1 Reply)
Discussion started by: rcscott
1 Replies

Featured Tech Videos