Sponsored Content
Top Forums Shell Programming and Scripting Questions related to if in awk context and if without awk context Post 303029766 by Don Cragun on Thursday 31st of January 2019 08:37:30 PM
Old 01-31-2019
Quote:
Originally Posted by Seth
Uh, my awk code works fine provided $input is a file in the working directory. I am not using any special editors, and after reading RudiC's comments, I restarted my system and went to a real terminal (not terminal emulator) and did the following at a prompt:





AfileinDir is simply a file with some data in a couple of fields.



Code:
 
 
    input=”AfileinDir” 



    awk '{if($input == $(ls)) {print $1 "\t" $2;} }' $input

code works fine. Go to a directory on your computer, define input as a file in that directory that has at least 2 fields and copy paste the awk line above.


My first question relates to the else portion of the code which I haven't included. I know * that * part doesn't work, which is why I asked for help on improving the script.


My second question is still not being answered because so far the respondents are saying my code doesn't work when it does?? No special emulators. Straight from tty1 terminal.
p { margin-bottom: 0.1in; line-height: 115%; }
Please explain in English what you think the expression in the if statement in:
Code:
awk '{if($input == $(ls)) {print $1 "\t" $2;} }

is doing. Since you can't get the else clause to work, by definition, your code is not working. How can you say your code is working when it won't run if the filename you pass to it is not a file that exists in the current directory? Furthermore, it is my belief that what the code above is doing is not doing what you think it is. Whether or not that means it is working when the named file does exist is open for discussion. I claim that if it is not doing what you think it is doing, it is not working. You claim that since the then clause of your if statement is working, everything is fine.

Without running the following code, what output do you think it would produce:
Code:
awk '{if($input == $(ls)) {print $1 "\t" $2 "\t$input=\"" $input "\"\t$(ls)=\"" $(ls) "\"";} } $input

After you have decided what output you think it should produce, run it and compare the output you get to the output you thought it should produce. Then go back and look at how I said that expression in the if statement would be evaluated in my comments in post #4 in this thread.

Please run the above test and let us know what happens!

As I said before, I can't test your code using the version of awk that I have available on my system because the code you're using is not technically correct (and produces a syntax error in the version of awk that I'm using, but runs without producing a syntax error in the version of awk that you're using). I can force the version of awk I'm using to get the results you're seeing by changing your code to:
Code:
awk '{if($input == $(ls+0)) {print $1 "\t" $2;} }

 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Context Switching

I know that this is a relative question but can someone give me an idea of what would be considered a high number of context switches? I am running vmstat and show a cs value of between 5000 and 6000 on a 4 processor system. How can I deduce if this number is high or not? Also, the timeslice... (2 Replies)
Discussion started by: keelba
2 Replies

2. Shell Programming and Scripting

keep context in awk

here is a data file. ------------------------------------- KSH, CSH, BASH, PERL, PHP, SED, AWK KSH, CSH, BASH, PERL, PHP, BASH, PERL, PHP, SED, AWK CSH, BASH, PERL, PHP, SED, KSH, CSH, BASH, PERL, PHP, SED, AWK ------------------------------------- My desired output is... (2 Replies)
Discussion started by: VTAWKVT
2 Replies

3. UNIX for Advanced & Expert Users

context lost problem

there are several same servers(process) on more than one server(machine) providing the same service. we store session/context within the server(process), if the same client login, he will be directed to the very server service for him last time. But, if a server(machine or process) down, the... (1 Reply)
Discussion started by: zhongyj
1 Replies

4. Shell Programming and Scripting

grep help after context

Hi, There's a file with below contents which I have to read based on the input parameter provided by the user. FILE_ID=1 FILE_FTP_ID=ftp.server1.com FILE_FTP_USER=user1 FILE_FTP_PASS=pass1 FILE_ID=2 FILE_FTP_ID=ftp.server2.com FILE_FTP_USER=user2 FILE_FTP_PASS=pass2 FILE_ID=3... (6 Replies)
Discussion started by: dips_ag
6 Replies

5. UNIX for Dummies Questions & Answers

Split based on Context

Hello, I have a file that I want to be able to split at specific positions. For example in the file below I want to be able to split at every occurence of 2 at the start of a line, into multiple files. 2 abc PQRST abcRSTG 2 cde FGKL abcLKGRG ABCLKgrg 2 lmn OPT lmopqrst uvwxyz ... (1 Reply)
Discussion started by: Gussifinknottle
1 Replies

6. UNIX for Dummies Questions & Answers

Context-switching question

Hi all, I've got this question that i need to solve: "Type `vmstat -s; vmstat -n 1 5; vmstat -n 1 5; vmstat -s` to your Ruby interpreter. Then terminate your Ruby session. Run the Unix com- mand vmstat -s; vmstat -n 1 5; vmstat -s in the same terminal window you had been using for Ruby. Did... (1 Reply)
Discussion started by: snowboarder
1 Replies

7. Slackware

Context dependent symlinks

Ive got multiple PCs, sharing an NFS mounted home dir. For certain apps I would like to keep the config files host specific. Easy solution is to create symlinks to local folders for configs. Ideally I would still want the .config files to reside in the user home folder. Is it possible to... (2 Replies)
Discussion started by: agentrnge
2 Replies

8. Linux

involuntary context switching

In a kernel based on 2.6.27: In the schedule() routine they have a local variable switch_count: /* * schedule() is the main scheduler function. */ asmlinkage void __sched schedule(void) { struct task_struct *prev, *next; unsigned long *switch_count; struct rq... (2 Replies)
Discussion started by: chriskot
2 Replies

9. UNIX for Advanced & Expert Users

Interupt Context Switching

If suppose a middle level interrupt is being serviced and a high priority interrupts comes in then in that case what all process will take place. The interrupt context switch will happen. But where will the interrupt context be saved? Is there something called as part process data area? (4 Replies)
Discussion started by: rupeshkp728
4 Replies

10. Shell Programming and Scripting

Context for use of [.symbol.] awk notation

Hi Just wondering ... do you have an example of context that would demonstrates how usefull the awk notation can efficiently be used ? Thx :rolleyes: (6 Replies)
Discussion started by: ctsgnb
6 Replies
All times are GMT -4. The time now is 06:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy