Delete all lines starting with # character


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete all lines starting with # character
# 1  
Old 08-26-2017
Delete all lines starting with # character

Tool used : VIM editor that comes with RHEL 7.4

I have a file like below. It has around 300 lines like below. All the lines starting with # are comments.
For readability, I removed all lines starting with # from vi (vim editor) using the command :g/^#/d . It seemed to have worked.
But, which is more accurate/safe :g/^#/d or :g/^ *#/d and why ? This is super-important configuration file. Hence I want to use the most accurate command.


Code:
$ cat config.properties 
#some comment1 
parameter1=blablah
#some more comment2
another parameter=blablah
#another comment3
parameter3=xyz

# 2  
Old 08-26-2017
The second is the more reliable. If there is space before the # comment characters, it is still a comment. Even more reliable would be to remove possible TAB characters as well
This User Gave Thanks to Scrutinizer For This Post:
# 3  
Old 08-26-2017
Thank You scrutinizer. :g/^ *#/d cannot take care of TABs.

ie. It cannot remove the line with #some comment1 shown below which has a TAB at the beginning. Any idea , how lines with TABs can also be dealt with ? Using vi or some other utility ?

Code:
$ cat config.properties2
    #some comment1 
parameter1=blablah
#some more comment2
another parameter=blablah
#another comment3
parameter3=xyz

# 4  
Old 08-26-2017
Does your editor understand character classes? Try [[:space:]] in lieu of the single space...
# 5  
Old 08-26-2017
Quote:
Originally Posted by John K
...
...
:g/^ *#/d cannot take care of TABs.

ie. It cannot remove the line with #some comment1 shown below which has a TAB at the beginning. Any idea , how lines with TABs can also be dealt with ? Using vi or some other utility ?
...
...
If you are using Vim (as per your 1st post above), then Vim understands "\s" for whitespace. At least Vim versions 7 and higher.

Try:

Code:
:g/^\s*#/d

To check the version of your Vim editor, type on the shell prompt:

Code:
$ vim --version

or on the Vim prompt:

Code:
:version

This User Gave Thanks to durden_tyler For This Post:
# 6  
Old 08-26-2017
For regular vi you can enter a literal TAB character through CTRL-V TAB.
So:

Code:
:g/^[ ^I]*#/d

Where ^I denotes the TAB character entered through CTRL-V TAB

Last edited by Scrutinizer; 08-26-2017 at 02:28 PM..
This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 08-26-2017
Thank You Durden.

Where can I read more about "\s" ? What is this operator called ? (So that I can google about it )
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delete all lines except a line starting with string

Shell : bash OS : RHEL 6.8 I have a file like below. $ cat pattern.txt hello txt1 txt2 txt3 some other text txt4 I want to remove all lines in this file except the ones starting with txt . How can I do this ? (4 Replies)
Discussion started by: omega3
4 Replies

2. UNIX for Dummies Questions & Answers

How to grep a line not starting with # from a file (there are two lines starting with # and normal)?

e.g. File name: File.txt cat File.txt Result: #INBOUND_QUEUE=FAQ1 INBOUND_QUEUE=FAQ2 I want to get the value for one which is not commented out. Thanks, (3 Replies)
Discussion started by: Tanu
3 Replies

3. Shell Programming and Scripting

How to delete lines starting with specific string?

Dear all, I would like to delete even lines starting with "N" together with their respective titles which are actually odd lines. Below is the example of input file. I would like to remove line 8 and 12 together with its title line, i.e., line 7 and 11, respectively.... (2 Replies)
Discussion started by: huiyee1
2 Replies

4. Shell Programming and Scripting

Delete lines starting with these strings

Platform : RHEL 5.8 I have text file called myapplication.log . In this file, I have around 800 lines which start with the followng three strings PWRBRKER-3493 PWRBRKER-7834 SCHEDULER-ERROR How can I delete these lines in one go ? (13 Replies)
Discussion started by: omega3
13 Replies

5. Shell Programming and Scripting

sed or awk delete character in the lines before and after the matching line

Sample file: This is line one, this is another line, this is the PRIMARY INDEX line l ; This is another line The command should find the line with “PRIMARY INDEX” and remove the last character from the line preceding it (in this case , comma) and remove the first character from the line... (5 Replies)
Discussion started by: KC_Rules
5 Replies

6. Shell Programming and Scripting

Delete multiple lines starting with a specific pattern

Hi, just tried some script, awk, sed for the last 2 hours and now need help. Let's say I have a huge file of 800,000 lines like this : It's a tedious job to look through it, I'd like to remove those useless lines in it as there's a few thousands : Or to be even more precise : if line1 =... (6 Replies)
Discussion started by: Zurd
6 Replies

7. Shell Programming and Scripting

delete lines starting with a pattern

i have a file sample.txt containing i want to delete lines starting with 123 neglecting spaces and tabs. but not lines containing 123. i.e. i want files sample.txt as help me thanxx (4 Replies)
Discussion started by: yashwantkumar
4 Replies

8. Shell Programming and Scripting

Search the word to be deleted and delete lines above this word starting from P1 to P3

Hi, I have to search a word in a text file and then I have to delete lines above from the word searched . For eg suppose the file is like this: Records P1 10,23423432 ,77:1 ,234:2 P2 10,9089004 ,77:1 ,234:2 ,87:123 ,9898:2 P3 456456 P1 :123,456456546 P2 abc:324234 (2 Replies)
Discussion started by: vsachan
2 Replies

9. Shell Programming and Scripting

In Sed how can I replace starting from the 7th character to the 15th character.

Hi All, Was wondering how I can do the following.... I have a String as follows "ACCTRL000005022RRWDKKEEDKDD...." This string can be in a file called tail.out or in a Variable called $VAR2 Now I have another variable called $VAR1="000004785" (9 bytes long), I need the content of... (5 Replies)
Discussion started by: mohullah
5 Replies

10. Shell Programming and Scripting

Delete lines starting with XX or YY or ZZ or ....

Hi There! My final task for today is to delete lines starting with certain numbers for e.g., my text block is and i want to delete all lines starting with 11 or 17 or 21 I know i can use multiple sed commands like sed '/^11,/d' <filename> sed '/^17,/d' <filename> sed '/^21,/d'... (2 Replies)
Discussion started by: orno
2 Replies
Login or Register to Ask a Question