Sponsored Content
Top Forums Shell Programming and Scripting Adding tags in between sentences with awk Post 302934128 by RavinderSingh13 on Wednesday 4th of February 2015 11:44:17 PM
Old 02-05-2015
Quote:
Originally Posted by owwow14
Hi,
I need an
Code:
awk

to modify the following file. It is 2-column tab-separated.

Code:
Hi PP
my VBD
name DT
is NN
. SENT
 
Her PP
name VBD
is DT
the NN
same WRT
. SENT

Code:
<s>
Hi PP -
my VBD -
name DT -
is NN -
. SENT .
</s>
<s>
Her PP
name VBD
is DT
the NN
same WRT
. SENT
</s>

I tried to use the following awk
Code:
awk '{print $1 "\t" $2 "\t" "-"}'

but I can not figure out how to include the
Code:
<s>

and
Code:
</s>

in between each sentence.
Any suggestions?
Hello owwow14,

Could you please try following and let me know if this helps you.
Code:
awk -vs="<s>" -vs1="</s>" 'function add_tags(A){if(A==1){$0=s ORS $0};if(A==2){$0=$0 ORS s1}}($0 ~ /^$/){next} (NR==1 || j==1){add_tags(1);j=0} ($0==". SENT"){add_tags(2);j=1} 1'  Input_file

Output will be as follows.
Code:
<s>
Hi PP
my VBD
name DT
is NN
. SENT
</s>
<s>
Her PP
name VBD
is DT
the NN
same WRT
. SENT
</s>

Also a non oneliner form of the solution is as follows.
Code:
awk -vs="<s>" -vs1="</s>" 'function add_tags(A){
                                                if(A==1)        {
                                                                        $0=s ORS $0};
                                                                                        if(A==2){
                                                                                                        $0=$0 ORS s1
                                                                                                }
                                                                }
                                                ($0 ~ /^$/)     {
                                                                        next
                                                                }
                                                (NR==1 || j==1) {
                                                                        add_tags(1);
                                                                        j=0
                                                                }
                                                ($0==". SENT")  {
                                                                        add_tags(2);
                                                                        j=1
                                                                }
                           1
                          ' Input_file

Thanks,
R. Singh
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

spliting up sentences

hello, i'm looking to split up text into a list of words but can't figure it out, any help would be great. thanks steven (2 Replies)
Discussion started by: stevox
2 Replies

2. Shell Programming and Scripting

How to identify sentences from a text?

Hi, I have to identify sentences from this text. If i split these statements by this way: @sentence= split(/\.\W*/,$text); I will get these following things also in the output along with proper sentences. Biol Reprod. 2002 Mar;66(3):785-95. Egydio de Carvalho C, Tanaka H,... (2 Replies)
Discussion started by: vanitham
2 Replies

3. Shell Programming and Scripting

How to get exact match sentences?

Hi, I have sentences like this: $sent= Protein modeling studies reveal that the RG-rich region is part of a three to four strand antiparallel beta-sheet, which in other RNA binding protein functions as a platform for nucleic acid interactions. Heterogeneous nuclear ribonucleoparticle... (19 Replies)
Discussion started by: vanitham
19 Replies

4. Shell Programming and Scripting

comparing sentences

Hi, I have a file and that file contains the following sentences. Here we show that a virus-encoded transcription factor, viral mRNA, cellular RNA-binding protein heterodimer G3BP/Caprin-1 (p137), translation initiation factors eIF4E and eIF4G, and ribosomal proteins are concentrated in the... (4 Replies)
Discussion started by: vanitham
4 Replies

5. UNIX for Dummies Questions & Answers

How to filter sentences??

Hi, I have few sentences here. $a1="Division of Hematology-Oncology, and Stem cell transplantation, Schneider Childrens Hospital, Albert Einstein College of Medicine, New Hyde Park, New York. "; $a2="Department of Cell Biology and Anatomy, College of Medicine, National Cheng Kung... (3 Replies)
Discussion started by: vanitham
3 Replies

6. UNIX for Dummies Questions & Answers

extracting sentences that only contain a word

Hi guys Need your help how do I extract sentences with only a word i.e. today is hot hot very humid humid2 Sample output hot very (0 Replies)
Discussion started by: jamestan
0 Replies

7. Shell Programming and Scripting

extracting sentences that only contain a word

Hi guys Need your help how do I extract sentences with only a word i.e. today is hot hot very humid humid2 Sample output hot (6 Replies)
Discussion started by: jamestan
6 Replies

8. Shell Programming and Scripting

Using awk to find sentences.

I am trying to print out sentences that meets a regular expression in awk (I’m open to using other tools, too). I got the regular expression I want to use, "(\+ \{4\})" from user ripat in a grep forum. Unfortunately with grep I couldn't print only the sentence. While searching for awk... (8 Replies)
Discussion started by: danbroz
8 Replies

9. Shell Programming and Scripting

How to use $variable in conditional sentences?

Hello all I am doing a Makefile but I can't return the value of $var to use it in conditional sentences: #!/bin/sh GO=$(shell) go GOPATH=$(GO) env GOPATH make: @$(GOPATH) @if ; then mkdir -p "$(GOPATH)/bin" ; fi When I type "make", @$GOPATH returns /home/icvallejo/go... (5 Replies)
Discussion started by: icvallejo
5 Replies
All times are GMT -4. The time now is 01:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy