awk - change variable on fly


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers awk - change variable on fly
# 22  
Old 04-20-2012
I cannot reproduce this error on my systems. What is your OS and version?
# 23  
Old 04-20-2012
Code:
# cat /etc/debian_version
6.0.4

I used this example line which I've pasted before:
Code:
# cat lol.tmp
"aaaaa","bbbbbb","ccccc","ddddd,eeeee","ffffff","ggggg","3","2012/02/22 12:25:21","2012/02/22 00:00:00","8","hhhh","iiii"
#

Code:
# awk  -F '^"|","|"$' -v start=1334872800 '{"date \"+%s\" -d \"" $10 "\"" | getline current} current < start {print $10 " "current " " start}' lol.tmp
/bin/sh: Syntax error: Unterminated quoted string
2012/02/22 00:00:00  1334872800
#

ok. I think I know where is a problem: on this machine awk is sym link to mawk. I dont know this tool, but maybe there is difference?
Code:
# dpkg -l | grep awk
ii  mawk                               1.3.3-15                     a pattern scanning and text processing language

# 24  
Old 04-20-2012
I get the same error using mawk. Try using gawk instead of mawk
This User Gave Thanks to Scrutinizer For This Post:
# 25  
Old 04-20-2012
Heh ...its works. Why I didnt check earlier this package ? ;/

Many thanks for help ! Smilie

Best regards,
Paweł

Edit:

In your solution there is "getline" command. In my case I am using this script against large file (more then 90k records) and on output I see:
Code:
"gawk: (FILENAME=file.csv FNR=6477) fatal: cannot open pipe".

Somewhere should be function "close" ? (source http://www.gnu.org/software/gawk/manual/html_node/Close-Files-And-Pipes.html ). If I understand correctly getline open file one time and keep it in cache ;/

Do you know how to avoid this problem ?

Last edited by haczyk; 04-21-2012 at 01:48 AM.. Reason: Add question
# 26  
Old 04-21-2012
Hi, see if this works:
Code:
gawk  -F '^"|","|"$' -v start=1334872800 '{cmd="date +%s -d \"" $10 "\""; cmd | getline current; close(cmd)} current < start {print $10 " "current " " start}' lol.tmp

# 27  
Old 04-21-2012
Thank you for help again Smilie

generally it works...however performance is very poor:
Code:
real    6m34.824s

and it is in the middle on job ;/

Is there any way to speed-up this?
# 28  
Old 04-21-2012
Quote:
Originally Posted by haczyk
Is there any way to speed-up this?
Likely. Spawning a command for each line is suboptimal. You probably had better just comparing the date components as strings.
Can you provide a sample input file with more than one line ?
Are the records ordered ?
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Make change to variable value inside of awk script

Hello, I have text data that looks like this, Mrv16a3102061815532D 6 6 0 0 0 0 999 V2000 -0.4018 1.9634 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1163 1.5509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1163 0.7259 ... (9 Replies)
Discussion started by: LMHmedchem
9 Replies

2. UNIX for Dummies Questions & Answers

Change variable value

I have big XML which i want to change all VERSIONNUMBER equal to 1,in existing file values of VERSIONNUMBER will be different as below now i want to change all VERSIONNUMBER values qual to 1.Please help me which will convert versionnumber values. <SHORTCUT OBJECTSUBTYPE ="" OBJECTTYPE ... (5 Replies)
Discussion started by: katakamvivek
5 Replies

3. Shell Programming and Scripting

I can't change the value of my variable!

I made this HEADMAKER variable to pull the header from the first file in the loop, but then to stop so it doesn't override the file with later loops. However, I CANNOT get it to reassign the value of my variable away from "FIRST". I have also tried it with 1 and 0, and with and without quotes and... (3 Replies)
Discussion started by: crankymonkey
3 Replies

4. Shell Programming and Scripting

Change Variable Value from Multiple Scripts and Use these Variable

Hi to All, Please find below details. file_config.config export file1_status="SUCCESS" export file2_status="SUCCESS" file_one.sh I am calling another two shell script from these script. I need to pass individual two script status (If it's "FAILED") to file_main.sh. file_main.sh I... (2 Replies)
Discussion started by: div_Neev
2 Replies

5. Shell Programming and Scripting

Change the filename variable value

Hi guys, I have a variable where i am storing the filename (with full path). I just need the value before ".txt". But instead of getting the filename i am getting the contents of the filename. FileName=/appl/data/Input/US/Test.txt a=`awk -F"." '{print $1}' ${FileName}` echo $a... (3 Replies)
Discussion started by: mac4rfree
3 Replies

6. Shell Programming and Scripting

using awk for setting variable but change the output of this variable within awk

Hi all, Hope someone can help me out here. I have this BASH script (see below) My problem lies with the variable path. The output of the command find will give me several fields. The 9th field is the path. I want to captured that and the I want to filter this to a specific level. The... (6 Replies)
Discussion started by: Cowardly
6 Replies

7. Shell Programming and Scripting

Store Host lookup in variable ("on the fly")

Hi, I'm new here. I was wondering why I can't store a host lookup in a variable. for line in $(< blacklist) do STOREIP=host $line; if ]; then $line >> blacklist2; else $line >> blacklist3; fi done Result: "ip" command not found .. so how would I store the host lookup in the... (2 Replies)
Discussion started by: sOliver
2 Replies

8. Shell Programming and Scripting

awk: change string variable

Hi. How to change string variable in awk? for example, I parse with awk script text file named some_name_with_extension.txt I want to print only some_name in my script .... varCompName = FILENAME print varCompName How to put not all symbols from FILENAME to variable? thank you This... (4 Replies)
Discussion started by: cintlt
4 Replies

9. Shell Programming and Scripting

Change only the name of a variable

if I have a variable named z inside a java file, is there any way to globally change the name of the variable and all its occurences as a variable? (but not any other z that is not part of that variable name) (3 Replies)
Discussion started by: lydiaflamp
3 Replies

10. Shell Programming and Scripting

How to change awk and shell variable value?

In awk script, #!/bin/sh awk 'BEGIN{i=0;}{i=i+5;}END{print i}' in.txt vr=0; vr=$i; echo "$vr" How can i assign that value of i in $vr(variable) of shell script? (7 Replies)
Discussion started by: cola
7 Replies
Login or Register to Ask a Question