Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Awk: problem for loop through variable Post 302948864 by Akshay Hegde on Friday 3rd of July 2015 08:04:40 AM
Old 07-03-2015
Quote:
Originally Posted by beca123456
Hi CarloM,

I tried:
Code:
gawk 'BEGIN{FS=OFS="|"}

function repeat(str, n, rep, i){
    for(i=1; i<=n; i++)
        rep=rep str
        return rep
}
{

# when awk reads first record 
# $2 = 1, j is undefined or not set yet and -1
# which is nothing but $2+(j-1) = 0
# so loop inside function repeat will not work
# ultimately function returns rep which is undefined or not set yet
# so a[""] = ""
# since variable_j is not defined or not set
a[variable_j]=repeat($1, $2+(j-1))  

for(k in a){
    # iterate 3 times since contents inside array a is just ""  you received blank output
    for(j=1; j<=3; j++){
        print a[k]
}
}
}' input

but still get blank records...
Here is test

Code:
[akshay@localhost tmp]$ echo "AAA|1" | gawk 'BEGIN{FS=OFS="|"}
function repeat(str, n, rep, i){ 
print "n : "n
    for(i=1; i<=n; i++)
        rep=rep str
        return rep
}
{

a[variable_j]=repeat($1, $2+(j-1))  

for(k in a){
    for(j=1; j<=3; j++){
        print k,a[k]
}
}

}' 
n : 0
|
|
|

This User Gave Thanks to Akshay Hegde For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Problem with variable expension using for loop.

Hi, I have a problem with expending variables when used in a for loop: #!/bin/ksh VAR1=aaa VAR2=bbb VAR3=ccc for ITEM in VAR1 VAR2 VAR3 do echo "${ITEM}" done This gives: VAR1 VAR2 VAR3 (2 Replies)
Discussion started by: ejdv
2 Replies

2. Shell Programming and Scripting

Variable problem in for loop with if statement

Hi, Again a little problem. Do not understand good why an empty string is not detected. Here is the program: #!/bin/ksh APR=`date | grep Apr | awk '{print $2$3}'` MAY=`date | grep May | awk '{print $2$3}'` JUN=`date | grep Jun | awk '{print $2$3}'` echo "Variable Apr has value:... (6 Replies)
Discussion started by: ejdv
6 Replies

3. Shell Programming and Scripting

Passing a variable to awk while in a shell for loop

I am a newbie to awk and c programming, however am not a unix newbie. However, I do need help with a kshell script I am writing. It is almost complete, the last step is killing me. Any help would be greatly appreciated. What I am trying to do is cat a text file that has usernames. Then, using... (2 Replies)
Discussion started by: synergy_texas
2 Replies

4. Shell Programming and Scripting

using awk in a for loop (getting ksh variable)

Hi, I've tried searching the forums for a case similar to mine but was unsuccessful. This is my first time to use awk so any help would be really appreciated :) I have one file containing data for with the first value in each row being a State Name. I would need to create a separate file... (1 Reply)
Discussion started by: karver
1 Replies

5. Shell Programming and Scripting

problem with for loop and a variable with spaces...Hi

Hi there, I don't understand the following behavior: toto:~$ for word in un "deux trois"; do echo $word; done un deux trois toto:~$ sentence='un "deux trois"' toto:~$ for word in $sentence; do echo $word; done un "deux trois" toto:~$ sentence="un 'deux trois'" toto:~$ for word in... (10 Replies)
Discussion started by: chebarbudo
10 Replies

6. Shell Programming and Scripting

Bourne Shell - Problem with while loop variable scope.

Hello I am having issues with a script I'm working on developing on a Solaris machine. The script is intended to find out how many times a particular user (by given userid) has logged into the local system for more than one hour today. Here is my while loop: last $user | grep -v 'sshd'... (7 Replies)
Discussion started by: DaveRich
7 Replies

7. Shell Programming and Scripting

awk, double variable, for loop and rsh

Hello folks, I've a (perhaps) simple question. In a text file I've : server_name1: directory1 server_name2: directory2 server_name3: directory3 I want to make a loop that lets me connect and operate on every server: rsh server_name1 "ls -l directory1" I've tried with awk,... (6 Replies)
Discussion started by: gogol_bordello
6 Replies

8. Shell Programming and Scripting

String variable concatenation through loop problem

Hi Team!! Please can anyone tell me why the following line does not work properly? str3+=$str2 it seems that str3 variable does not keep its value in order to be concatenated in the next iteration! Thus when i print the result of the line above it returns the str2 value What i want to do is to... (8 Replies)
Discussion started by: paladinaeon
8 Replies

9. Shell Programming and Scripting

awk programming -Passing variable to awk for loop

Hi All, I am new to AWK programming. I have the following for loop in my awk program. cat printhtml.awk: BEGIN -------- <some code here> END{ ----------<some code here> for(N=0; N<H; N++) { for(M=5; M<D; M++) print "\t" D ""; } ----- } ... (2 Replies)
Discussion started by: ctrld
2 Replies

10. UNIX for Beginners Questions & Answers

Variable and awk inside for loop

Thanks all for taking time out and reading this thread and big Thanks to all who have come forward for rescue. Background: I have a variable "nbrofcols" that has number of columns from a data file. Now, using this count in for loop, I am trying to get the maximum length of each column present... (7 Replies)
Discussion started by: svks1985
7 Replies
textutil::repeat(n)				    Text and string utilities, macro processing 			       textutil::repeat(n)

__________________________________________________________________________________________________________________________________________________

NAME
textutil::repeat - Procedures to repeat strings. SYNOPSIS
package require Tcl 8.2 package require textutil::repeat ?0.7? ::textutil::repeat::strRepeat text num ::textutil::repeat::blank num _________________________________________________________________ DESCRIPTION
The package textutil::repeat provides commands to generate long strings by repeating a shorter string many times. The complete set of procedures is described below. ::textutil::repeat::strRepeat text num This command returns a string containing the text repeated num times. The repetitions are joined without characters between them. A value of num <= 0 causes the command to return an empty string. Note: If the Tcl core the package is loaded in provides the command string repeat then this command will be implemented in its terms, for maximum possible speed. Otherwise a fast implementation in Tcl will be used. ::textutil::repeat::blank num A convenience command. Returns a string of num spaces. BUGS, IDEAS, FEEDBACK This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category textutil of the Tcllib SF Trackers [http://sourceforge.net/tracker/?group_id=12883]. Please also report any ideas for enhancements you may have for either package and/or documentation. SEE ALSO
regexp(n), split(n), string(n) KEYWORDS
blanks, repetition, string CATEGORY
Text processing textutil 0.7.1 textutil::repeat(n)
All times are GMT -4. The time now is 04:43 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy