Add number prepend certain lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Add number prepend certain lines
# 8  
Old 08-08-2016
Dear yanglei_fage,

We have questions needing a response first:-
  • What have you tried so far?
  • What output/errors do you get?
  • What are your preferred tools beyond the shell if needed? (C, sed, perl, awk, etc.)
  • What logical process have you considered? (to help steer us to follow what you are trying to achieve)
Most importantly, What have you tried so far?

There are probably many ways to achieve most tasks, so giving us an idea of your style and thoughts will help us guide you to an answer most suitable to you so you can adjust it to suit your needs in future.


We're all here to learn and getting the relevant information will help us all.



Robin
# 9  
Old 08-08-2016
Hi.

Standard utility nl could be used:
Code:
#!/usr/bin/env bash

# @(#) s1       Demonstrate numbering lines matching regular expression, nl.

# Utility functions: print-as-echo, print-line-with-visual-space, debug.
# export PATH="/usr/local/bin:/usr/bin:/bin"
LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe() { for _i;do printf "%s" "$_i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
db() { ( printf " db, ";for _i;do printf "%s" "$_i";done;printf "\n" ) >&2 ; }
db() { : ; }
C=$HOME/bin/context && [ -f $C ] && $C nl

FILE=${1-data1}
E=expected-output.txt

pl " Input data file $FILE:"
cat $FILE

pl " Expected output:"
cat $E

pl " Results:"
nl -bp"^[a-zA-Z]" -nln -s". " -w 1 $FILE

exit 0

producing:
Code:
$ ./s1

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 3.16.0-4-amd64, x86_64
Distribution        : Debian 8.4 (jessie) 
bash GNU bash 4.3.30
nl (GNU coreutils) 8.23

-----
 Input data file data1:
a(depends: )
bb(depends:lmbench )
cc(depends: )
    CONFIG_DEFAULT1=y
    CONFIG_IOSCHED1=y
    CONFIG_CGROUP1=y
ddd(depends: )
    CONFIG_GENERIC_CPU1=y
    CONFIG_CRYPTO_AES_NI1=m

-----
 Expected output:
1. a(depends: )
2. bb(depends:lmbench )
3. cc(depends: )
    CONFIG_DEFAULT1=y
    CONFIG_IOSCHED1=y
    CONFIG_CGROUP1=y

4. ddd(depends: )
    CONFIG_GENERIC_CPU1=y
    CONFIG_CRYPTO_AES_NI1=m

-----
 Results:
1. a(depends: )
2. bb(depends:lmbench )
3. cc(depends: )
       CONFIG_DEFAULT1=y
       CONFIG_IOSCHED1=y
       CONFIG_CGROUP1=y
4. ddd(depends: )
       CONFIG_GENERIC_CPU1=y
       CONFIG_CRYPTO_AES_NI1=m

The sample input is small, so some adjustments may be necessary for production input.

See man nl for details.

Best wishes ... cheers, drl
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Print number of lines for files in directory, also print number of unique lines

I have a directory of files, I can show the number of lines in each file and order them from lowest to highest with: wc -l *|sort 15263 Image.txt 16401 reference.txt 40459 richtexteditor.txt How can I also print the number of unique lines in each file? 15263 1401 Image.txt 16401... (15 Replies)
Discussion started by: spacegoose
15 Replies

2. Shell Programming and Scripting

Find header in a text file and prepend it to all lines until another header is found

I've been struggling with this one for quite a while and cannot seem to find a solution for this find/replace scenario. Perhaps I'm getting rusty. I have a file that contains a number of metrics (exactly 3 fields per line) from a few appliances that are collected in parallel. To identify the... (3 Replies)
Discussion started by: verdepollo
3 Replies

3. Shell Programming and Scripting

awk to skip lines find text and add text based on number

I am trying to use awk skip each line with a ## or # and check each line after for STB= and if that value in greater than or = to 0.8, then at the end of line the text "STRAND BIAS" is written in else "GOOD". So in the file of 4 entries attached. awk tried: awk NR > "##"' "#" -F"STB="... (6 Replies)
Discussion started by: cmccabe
6 Replies

4. Shell Programming and Scripting

Grep lines for number greater than given number

Hello, I am newbie to bash scripting. Could someone help me with the following. I have log file with output as shown below **************************LOG************************* 11/20/2013 9:11:23.64 Pinging xx.xx.xx.xx with 32 bytes of data: 11/20/2013 9:11:23.64 Reply from xx.xx.xx.xx:... (4 Replies)
Discussion started by: meena_2013
4 Replies

5. Shell Programming and Scripting

Add string number to lines

So I have a file in the form > akdfvcnciejcndmdjfk > kdjkkkifjeeeeelfjfuf > fjfhchdejhfhfhfhfhfhf > skdkdhfhvnvncnccm and I would like it to come out in the form >1 akdfvcnciejcndmdjfk >2 kdjkkkifjeeeeelfjfuf >3 fjfhchdejhfhfhfhfhfhf (3 Replies)
Discussion started by: viored
3 Replies

6. Shell Programming and Scripting

how to add the number of row and count number of rows

Hi experts a have a very large file and I need to add two columns: the first one numbering the incidence of records and the another with the total count The input file: 21 2341 A 21 2341 A 21 2341 A 21 2341 C 21 2341 C 21 2341 C 21 2341 C 21 4567 A 21 4567 A 21 4567 C ... (6 Replies)
Discussion started by: juelillo
6 Replies

7. Shell Programming and Scripting

add number in lines line by line in different files

I have a set of log files that are in the following format ======= set_1 ======== counter : 315 counter2: 204597 counter3: 290582 ======= set_2 ======== counter : 315 counter2: 204597 counter3: 290582 ======= set_3 ======== counter : 315 counter2: 204597 counter3: 290582 Is... (6 Replies)
Discussion started by: grandguest
6 Replies

8. Shell Programming and Scripting

count the number of lines that start with the number

I have a file with contents similar to this. abcd 1234 4567 7666 jdjdjd 89289 9382 92 jksdj 9823 298 I want to write a shell script which count the number of lines that start with the number (disregard the lines starting with alphabets) (1 Reply)
Discussion started by: grajp002
1 Replies

9. Shell Programming and Scripting

Number lines of file and assign variable to each number

I have a file with a list of config files numbered on the lefthand side 1-300. I need to have bash read each lines number and assign it to a variable so it can be chosen by the user called by the script later. Ex. 1 some data 2 something else 3 more stuff which number do you... (1 Reply)
Discussion started by: glev2005
1 Replies

10. Shell Programming and Scripting

Appending line number to each line and getting total number of lines

Hello, I need help in appending the line number of each line to the file and also to get the total number of lines. Can somebody please help me. I have a file say: abc def ccc ddd ffff The output should be: Instance1=abc Instance2=def Instance3=ccc Instance4=ddd Instance5=ffff ... (2 Replies)
Discussion started by: chiru_h
2 Replies
Login or Register to Ask a Question