Sponsored Content
Top Forums Shell Programming and Scripting How to print elements between letters bash script? Post 302929097 by Chubler_XL on Wednesday 17th of December 2014 04:46:57 PM
Old 12-17-2014
Arrays are not a very good way to store this data you could simplify the code by using strings:

Code:
STR=81UV78UV183UV89800
for val in ${STR//UV/ }
do
   echo $val
done

Anyway here is the method you want - note the final test as you have no terminating UV in your data:

Code:
#!/bin/bash
 
#String 1 (81UV78UV183UV89800) represents content of  this array
#a[0]=8;a[1]=1;a[2]=U;a[3]=V;a[4]=7;a[5]=8;a[6]=U;
#a[7]=V;a[8]=1;a[9]=8;a[10]=3;a[11]=U;a[12]=V;
#a[13]=8;a[14]=9;a[15]=8;a[16]=0;a[17]=0;
a=( 8 1 U V 7 8 U V 1 8 3 U V 8 9 8 0 0 )
 
#String 2 (8U1UVV78UUV18UU3UV89800) represents content of  this array
#a[0]=8;a[1]=U;a[2]=1;a[3]=U;a[4]=V;a[5]=V;a[6]=7;a[7]=8;
#a[8]=U;a[9]=U;a[10]=V;a[11]=1;a[12]=8;a[13]=U;a[14]=U;a[15]=3;a[16]=U;
#a[17]=V;a[18]=8;a[19]=9;a[20]=8;a[21]=0;a[22]=0;
#a=(  8 U 1 U V V 7 8 U U V 1 8 U U 3 U V 8 9 8 0 0 )

for (( i=0; i<${#a[@]}; i++))
do
 if [ "${a[i]}${a[i+1]}" == "UV" ]; then
    ((i++))
    if (( ${#buff} > 0 )); then
           echo ${buff}
           buff=""
    fi
 else
    buff=${buff}${a[i]}
 fi
done
if (( ${#buff} > 0 )); then
   echo ${buff}
fi


Last edited by Chubler_XL; 12-17-2014 at 06:07 PM..
This User Gave Thanks to Chubler_XL For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Print last 2 letters in a word

Hi, I have a file which has the below information tm.orbit72 tm.orbit12 tm.orbit78 tm.orbitye I want to print the last two letters in the above file. Please let me know how can i do that. (6 Replies)
Discussion started by: Krrishv
6 Replies

2. Shell Programming and Scripting

tr | letters to symbol, bash scripting

hi Im trying to make the 'response' return the answer in the form of a dash (-) rather than the actuall letters of a given word typed in, this is what i have tried, but im not getting the dashes come through just a blank screen, any ideas guys? function enterWord () { echo "select to be... (2 Replies)
Discussion started by: ferrycorsten73
2 Replies

3. Shell Programming and Scripting

How can I print array elements as different columns in bash?

Hi Guys, I have an array which has numbers including blanks as follows: 1 26 66 4.77 -0.58 88 99 11 12 333 I want to print a group of three elements as a different column in a file as follows:(including blanks where there is missing elements) for.e.g. array element #7... (4 Replies)
Discussion started by: npatwardhan
4 Replies

4. UNIX for Dummies Questions & Answers

Grep /Awk letters X - X in every line and print it as a mac address

hey i m kinda new to this so i will appreciate any help , i have this list of values: pwwn = 0x50012482009cd7a7 nwwn=0x50012482009cd7a6 port_id = 0x280200 pwwn = 0x5001248201bcd7a7 nwwn=0x5001248201bcd7a6 port_id = 0x280300 pwwn = 0x50012482009c51ad nwwn=0x50012482009c51ac port_id =... (4 Replies)
Discussion started by: boaz733
4 Replies

5. Shell Programming and Scripting

Print arguments using array elements not working?

Hey guys, I'm new to shell scripting and I'm trying to write a script that takes user input and copies the specified columns from a data file to a new one. In order to account for the possibility of a variable number of columns to copy I wrote a loop that encodes the user's choices in an array... (16 Replies)
Discussion started by: shaner
16 Replies

6. UNIX for Dummies Questions & Answers

How to declare an array in UNIX and print the elements with tab delimits?

Hello, In a shell script, I want to declare an array and subsequently print the elements with tab delimits. My array has the following structure and arbitrary elements: myArray=('fgh' 'ijk' 'xyz' 'abc'); Next, I would like to print it with a '\n' at the end. Thanks for your input! ... (2 Replies)
Discussion started by: Gussifinknottle
2 Replies

7. Shell Programming and Scripting

Select / Print odd-even elements of an array

Hello experts, I wish to print the contents of odd-even numbered indices of an array. The problem statement is as follows : 1. The first line contains an integer, (the number of test cases). 2. Each line of the subsequent lines containing a string. Example: 2 Haider Bash ... (4 Replies)
Discussion started by: H squared
4 Replies

8. UNIX for Beginners Questions & Answers

Scanning array for partial elements in Bash Script

Example of problem: computerhand=(6H 2C JC QS 9D 3H 8H 4D) topcard=6D How do you search ${computerhand} for all elements containing either a "6" or a "D" then save the output to a file? This is a part of a Terminal game of Crazy 8's that I'm attempting to write in Bash. Any... (2 Replies)
Discussion started by: cogiz
2 Replies

9. UNIX for Beginners Questions & Answers

Random choice of elements in bash array

example of problem: #!/bin/bash P=(2 4 7) How would you randomly choose one of these 3 numbers in this array? either 2 or 4 or 7 is needed...but only one of them. Thanks in advance Cogiz Please use CODE tags as required by forum rules! (3 Replies)
Discussion started by: cogiz
3 Replies

10. UNIX for Beginners Questions & Answers

Inaccurate scanning of Bash array elements

username=cogiz #!/bin/bash shuffle() #@ USAGE: shuffle { #@ TODO: add options for multiple or partial decks Deck=$( printf "%s\n" {2,3,4,5,6,7,8,9,T,J,Q,K,A}{H,S,D,C} | awk '## Seed the random number generator BEGIN { srand() } ## Put a random number in front... (4 Replies)
Discussion started by: cogiz
4 Replies
CLIENTLIB(3)						     Library Functions Manual						      CLIENTLIB(3)

NAME
clientlib - NNTP clientlib part of InterNetNews library SYNOPSIS
extern FILE *ser_rd_fp; extern FILE *ser_wr_fp; extern char ser_line[]; char * getserverbyfile(file) char *file; int server_init(host) char *host; int handle_server_response(response, host) int reponse; char *host; void put_server(text) char *text; int get_server(buff, buffsize) char *buff; int buffsize; void close_server() DESCRIPTION
The routines described in this manual page are part of the InterNetNews library, libinn(3). They are replacements for the ``clientlib'' part of the NNTP distribution, and are intended to be used in building programs like rrn. Getserverbyfile calls GetConfigValue to get the name of the local NNTP server. It returns a pointer to static space. The file parameter is ignored. Server_init opens a connect to the NNTP server at the specified host. It returns the server's response code or -1 on error. If a connec- tion was made, then ser_rd_fp and ser_wr_fp can be used to read from and write to the server, respectively, and ser_line will contain the server's response. Ser_line can also be used in other routines. Handle_server_response decodes the response, which comes from the server on host. If the client is authorized, it returns 0. A client that is only allowed to read is authorized, but handle_server_response will print a message on the standard output. If the client is not authorized to talk to the server, then a message is printed and the routine returns -1. Put_server sends the text in buff to the server, adding the necessary NNTP line terminators, and flushing the I/O buffer. Get_server reads a line of text from the server into buff, reading at most buffsize characters. Any trailing terminators are stripped off. Get_server returns -1 on error. Close_server sends a ``quit'' command to the server and closes the connection. HISTORY
Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews. This is revision 42, dated 1997-08-04. SEE ALSO
libinn(3). CLIENTLIB(3)
All times are GMT -4. The time now is 08:17 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy