How to comment a specific line of a file in Solaris 10?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to comment a specific line of a file in Solaris 10?
# 8  
Old 01-06-2020
Thanks Rudic for your valuable comments

Say in abc.txt as below i have below entries

cat abc.txt
Code:
bc
cdcggd
vdv
shhsd
cdc
skdk
cdc45ggd

and when i do
Code:
grep -n cdc abc.txt

Code:
2:cdcggd
5:cdc
7:cdc45ggd

How to handle such then? where i have to disable all 3 entries where these 3 line numbers is to be passes as variable to a sed command in a script?

Moderator's Comments:
Mod Comment Please do wrap your samples/codes with CODE TAGS as per forums rules.

Last edited by RavinderSingh13; 01-06-2020 at 09:30 AM..
# 9  
Old 01-06-2020
Again, why the numbered grep detour, opening/reading the file more frequently than necessary? Do you need the line numbers elsewhere?


For numbers, how about


Code:
sed -n '/cdc/=' file | sed 's-$-s/^/#/-' | sed -f- file

# 10  
Old 01-07-2020
Hi Rudic,

tried executing your command in SOLARIS but end-up with below

bash-3.2$
Code:
sed -n '/cdc/=' abc.txt | sed 's-$-s/^/#/-' | sed -f- abc.txt
Cannot open pattern-file: -

My requirement is as below.
i have to check for any entry say cdc in a file abc.txt and from their i will comment the one which i need.

Example

I am getting the line numbers where cdc occurred ,as below and i am interested in commenting line 2 and 7 only not 5 in single go by passing the line numbers i have to comment it,Please suggest how this can be done in Solaris or do you have any other approach,kindly suggest


Code:
grep -n cdc abc.txt 
2:cdcggd
5:cdc
7:cdc45ggd




Code:
cat abc.txt
bc
cdcggd
vdv
shhsd
cdc
skdk
cdc45ggd

Thanks
Abhay
# 11  
Old 01-07-2020
That means you need to interact with the script to select / deselect the relevant lines. Which would make your approach in post #6 moot. You'd need to find the lines, propose them to the user, read the y/n answer, and then go on commenting them out.
# 12  
Old 01-07-2020
If you have a rule like "cdc must appear at the beginning of the line and followed by a character",
then a simple RegularExpression does it:
Code:
perl -pe '/^cdc./ and s/^/#/' abc.txt

A -i option will write back to the abc.txt file.
If you want to manually select certain lines from grep -n output, then
Code:
perl -i -pe 2'==$. and s/^/#/' abc.txt
perl -i -pe 7'==$. and s/^/#/' abc.txt

If you want to use a shell variable, e.g. from a loop:
Code:
for num in 2 7; do perl -i -pe ${num}'==$. and s/^/#/' abc.txt; done

This User Gave Thanks to MadeInGermany For This Post:
# 13  
Old 01-10-2020
Hi Folks,

Need help on below code, where i am trying to redirect the output of grep command in a file /tmp/a.txt for each server with this below code but it's only getting generated on server1 why not in server2 and 3 ? please advise

Code:
ssh -t "$2@$1" "grep -n '"$env"' $A | cut -f1 -d: | sort -u >>/tmp/a.txt"

Error getting is + ./test.sh: line xx: /tmp/a.txt: cannot open [No such file or directory]

Code:
#!/bin/bash
set -x

echo INFO :  Please type the word to search
read env
A=/opt/abc.txt
set -- serbver1 User1 serbver2 User2 serbver3 User3
while [ "$#" -gt 0 ]

do

ssh -t "$2@$1" "cp /opt/abc.txt /opt/abc.txt_bkp"
ssh -t "$2@$1" "grep -n '"$env"' $A | cut -f1 -d: | sort -u >>/tmp/a.txt"
filename="/tmp/a.txt"
while read line
do
var=$line;var1=$A;sed "${var}s"/^/#/ "${var1}" > /opt/temp && mv /opt/temp  /opt/abc.txt
done < $filename
rm -rf /tmp/a.txt
     shift 2
done

# 14  
Old 01-10-2020
Won't it divert the output of below in each server ?

Code:
ssh -t "$2@$1" "grep -n '"$env"' $A | cut -f1 -d: | sort -u >>/tmp/a.txt"

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Count specific character of a file in each line and delete this character in a specific position

I will appreciate if you help me here in this script in Solaris Enviroment. Scenario: i have 2 files : 1) /tmp/TRANSACTIONS_DAILY_20180730.txt: 201807300000000004 201807300000000005 201807300000000006 201807300000000007 201807300000000008 2)... (10 Replies)
Discussion started by: teokon90
10 Replies

2. Shell Programming and Scripting

Overwrite specific column in xml file with the specific column from adjacent line

I have an xml file dumped from rrd file, that I want to "patch" so the xml file doesn't contain any blank hole in the resulting graph of the rrd file. Here is the file. <!-- 2015-10-12 14:00:00 WIB / 1444633200 --> <row><v> 4.0419731265e+07 </v><v> 4.5045912770e+06... (2 Replies)
Discussion started by: rk4k
2 Replies

3. Shell Programming and Scripting

How to comment a specific line of a file?

Hi, I need to comment out (insert # in the front of a line) a line that has entry Defaults requiretty using command-line as I need to do this on hundreds of servers. From Defaults requiretty To #Defaults requiretty I tried something like below but no luck: Please advise,... (3 Replies)
Discussion started by: prvnrk
3 Replies

4. Shell Programming and Scripting

Extract specific line in an html file starting and ending with specific pattern to a text file

Hi This is my first post and I'm just a beginner. So please be nice to me. I have a couple of html files where a pattern beginning with "http://www.site.com" and ending with "/resource.dat" is present on every 241st line. How do I extract this to a new text file? I have tried sed -n 241,241p... (13 Replies)
Discussion started by: dejavo
13 Replies

5. Shell Programming and Scripting

comment a line of the patterns is a the beginning of the line

I need to comment the lines starting with pattern "exclude" or "exclude=". If the work exclude comes at any other part, ignore it. Also, ignore, excludes, excluded etc. Ie only comment the line starting with exclude. File contents. exclude exclude= hi I am excluded excludes excludes= ... (9 Replies)
Discussion started by: anil510
9 Replies

6. Shell Programming and Scripting

Using awk to read a specific line and a specific field on that line.

Say the input was as follows: Brat 20 x 1000 32rf Pour 15 p 1621 05pr Dart 10 z 1111 22xx My program prompts for an input, what I want is to use the input to locate a specific field. Like if I type in, "Pou" then it would return "Pour" and just "Pour" I currently have this line but it is... (6 Replies)
Discussion started by: Bungkai
6 Replies

7. Shell Programming and Scripting

uncomment or comment one specific line in a config file

Hello. I want comment or uncomment a ligne in a config file. The file name : /etc/samba/smb.conf Normaly the ligne is uncomment :so the line begin with a tab character followed by passdb backend =\tpassdb backend = In that case I should comment this line ... (2 Replies)
Discussion started by: jcdole
2 Replies

8. Shell Programming and Scripting

Comment a line with SED

I have around 25 hosts and each hosts has 4 instance of jboss and 4 different ip attached to it . I need to make some changes to the startup scripts. Any tips appreciated. I have total of 100 instances which bind to 100 different ip address based on instance name. For example File1 ... (1 Reply)
Discussion started by: gubbu
1 Replies

9. UNIX for Dummies Questions & Answers

how to replace a text of line with a comment line

I want to replace this line : "test compare visible] true" and make it "#test compare visible] true". How can I do it ? And it should be checked in many sub folder files also. (6 Replies)
Discussion started by: manoj.b
6 Replies

10. Shell Programming and Scripting

Need to add a comment line in a text file

Hi I need to add a comment line at the begining of a text file. The scenario is given below. 1. The number of servers that needs to be updated is around 80 2. The location of the text file in all the servers are the same including the file name. 3. The comment has to be added at the very... (2 Replies)
Discussion started by: orakhan
2 Replies
Login or Register to Ask a Question