Simple question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Simple question
# 1  
Old 09-18-2014
Question Simple question

Sorry for stupid question, but why this script gives that output?

Code:
$ awk 'BEGIN { well=56789; print 1234$well }'
1234

I expected 123456789

Last edited by Scrutinizer; 09-18-2014 at 08:14 AM..
# 2  
Old 09-18-2014
Hello silyin,

Welcome to the forum. Kindly use the code tags please while posting your code/commands. The code shown by you is NOT showing expected output because any variable in awk need not to be put with $ symbol. So you can use following codes.

i- Code with BEGIN and without variable:
Code:
awk 'BEGIN { well=56789; print 1234 well }'

Output will be as follows.
Code:
123456789

ii- Code with use of variable.
Code:
awk -vwell="56789" 'BEGIN {print 1234 well}'

Output will be as follows.

Code:
123456789


Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 09-18-2014
So basically just leave out the dollar sign. In awk variable references do not have a $-sign:
This User Gave Thanks to Scrutinizer For This Post:
# 4  
Old 09-18-2014
Next one.
Why the value of variable 'well' defined for record 1 is empty for another records?

Code:
#! /bin/sh
for names
do
sed -e s/:// $names |
gawk ' 
NR==1 { if($1=="UWI") well=$2 }
NR>26 { printf "%s %s\r\n", well, $0 } ' >> tmp 
done

# 5  
Old 09-18-2014
Please specify samples of your input files and desired output
# 6  
Old 09-19-2014
OK.
The problem is I have about 2000 files (too big files) where is some ID in first raw which I want to transform to first field in all followed raws and to concatenate all files in single. I can attach about 30 raws of input file


---------- Post updated at 07:54 AM ---------- Previous update was at 07:48 AM ----------

So, this is input data (1 file)
Code:
UWI :060317000_00021R
Наименование файла :00021rir.zak
Код площади :060
Код месторождения :317
Номер куста :000_
Номер скважины :00021Р
Наименование скважинного прибора :Инклинометр
Номер скважинного прибора :
Организация-подрядчик :
Организация-заказчик :
Магнитное склонение (град) :17.60
Альтитуда стола ротора (м) :66.00
Диаметр ствола скважины (м) :
Диаметр колонны (м) :
Текущий забой (м) :
Проектный забой (м) :
Проектное смещение (м) :
Проектный азимут магнитный (град) :
Проектный азимут истинный (град) :
Проектная ошибка смещения (м) :
Ошибка измерения угла искривления (град) :
Ошибка измерения азимута искривления (град) :
Условия проведения измерения :
Дата исследования :31.10.1980
DEPT UGOL AI AM DU dX dY dZ ABS UDL 
xxxx.xx xx.xx xxxx.xx xxxx.xx xxxx.xx xxxxx.xx xxxxx.xx xxxxx.xx xxxxx.xx xxxx.xx
0.00 0.00 -999.25 20.00 34.84 0.00 0.00 0.00 66.00 0.00
25.00 0.00 -999.25 20.00 34.84 0.00 0.00 25.00 41.00 0.00
50.00 0.00 -999.25 20.00 34.84 0.00 0.00 50.00 16.00 0.00
75.00 0.00 -999.25 20.00 34.84 0.00 0.00 75.00 -9.00 0.00
100.00 0.00 -999.25 20.00 34.84 0.00 0.00 100.00 -34.00 0.00
125.00 0.83 -999.25 20.00 34.84 0.15 0.10 125.00 -59.00 0.00
150.00 0.00 -999.25 20.00 34.84 0.30 0.21 150.00 -84.00 0.00

This is desired output:

Code:
060317000_00021R 0.00 0.00 -999.25 20.00 34.84 0.00 0.00 0.00 66.00 0.00
060317000_00021R 25.00 0.00 -999.25 20.00 34.84 0.00 0.00 25.00 41.00 0.00
060317000_00021R 50.00 0.00 -999.25 20.00 34.84 0.00 0.00 50.00 16.00 0.00
060317000_00021R 75.00 0.00 -999.25 20.00 34.84 0.00 0.00 75.00 -9.00 0.00
060317000_00021R 100.00 0.00 -999.25 20.00 34.84 0.00 0.00 100.00 -34.00 0.00
060317000_00021R 125.00 0.83 -999.25 20.00 34.84 0.15 0.10 125.00 -59.00 0.00
060317000_00021R 150.00 0.00 -999.25 20.00 34.84 0.30 0.21 150.00 -84.00 0.00

# 7  
Old 09-19-2014
you're passing a list of files to this script?
you really don't need the shell loop, or sed.

Code:
awk 'FNR==1&&($1=="UWI"){sub(/:/,"",$2);well=$2}FNR>26{print well, $0}' files* >output

as awk script
Code:
#!/usr/bin/gawk
FNR==1 && ($1=="UWI") {
  sub(/:/,"",$2)
  well=$2
}
FNR>26 {
  print well, $0 >> "tmp"
}

This User Gave Thanks to neutronscott For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Red Hat

Syslog.conf: looking for a simple answer on a simple question

Cheers! In /etc/syslog.conf, if an error type is not specified, is it logged anywhere (most preferable is it logged to /var/log/messages) or not? To be more precise I am interested in error and critical level messages. At default these errors are not specified in syslog.conf, and I need to... (6 Replies)
Discussion started by: dr1zzt3r
6 Replies

2. Shell Programming and Scripting

Simple if then else question

I am having trouble making this statement work. I am passing in a number value for the number of days to keep archive logs for and wanted to make sure that it is a number. I have a script that will return 1 for is a number and 0 for is not a number. I also want to make sure that the number is not... (2 Replies)
Discussion started by: gandolf989
2 Replies

3. UNIX for Dummies Questions & Answers

simple question

hi everybody; trying to c unix programming and ive stucked with a problem: simple program filedr=open("tempfile",O_RDWR|O_TRUNC,0); write(filedr,msg1,6); int i; i=read(filedr,msg3,4); it returns 0 bytes read ... why? well if i try to poll() before read , it doesnt indicate POLLHUP or... (4 Replies)
Discussion started by: IdleProc
4 Replies

4. UNIX for Dummies Questions & Answers

Simple question

I had a script in solaris wich i read data, for example: Number 1: _ and the cursor use to be in '_' place because in the code of the script i write: echo "Number 1:\c" but i copy the script to a linux and the cursor 'jump' to the begining of the next line like: Number 1:... (2 Replies)
Discussion started by: lestat_ecuador
2 Replies

5. Shell Programming and Scripting

Simple Question

Hi, Please don't berate me over the simplicity of these questions. I have recently gotten into bash shell scripting and enjoy it quite a bit. One thing I have not found the answer to though is when naming a shell script, what extension is normally used (ie myscript.?)? Also where is the standard... (5 Replies)
Discussion started by: msb65
5 Replies

6. Shell Programming and Scripting

Simple ls question

i am doing ls -la in the out put , first line is as total 41621 What is this total? (2 Replies)
Discussion started by: Saurabh78
2 Replies

7. UNIX for Dummies Questions & Answers

Simple Question

Hi Guys, I've been learning UNIX for the past couple of days and I came across this exercise, I can't get my head around it, so I would be ever so grateful if I could receive some sort of help or direction with this. Create a file with x amount of lines in it, the content of your choice. ... (3 Replies)
Discussion started by: aforball
3 Replies

8. Programming

Simple C question... Hopefully it's simple

Hello. I'm a complete newbie to C programming. I have a C program that wasn't written by me where I need to write some wrappers around it to automate and make it easier for a client to use. The problem is that the program accepts standard input to control the program... I'm hoping to find a simple... (6 Replies)
Discussion started by: Xeed
6 Replies

9. UNIX for Dummies Questions & Answers

Ok simple question for simple knowledge...

Ok what is BSD exactly? I know its a type of open source but what is it exactly? (1 Reply)
Discussion started by: Corrail
1 Replies

10. UNIX for Advanced & Expert Users

Simple Question

Friends, I did following exercise $ echo '' > test $ od -b test $ echo "">test $ od -b test $echo > test $od -b test Every time I got the following output 0000000 012 0000001 But 012 is octal value for new line character . Even though there is no apperent new line character... (6 Replies)
Discussion started by: j1yant
6 Replies
Login or Register to Ask a Question