There's two modifications:
- the string concatenation might not work correctly for redirection file names on all system unless parenthesized (worked for me...)
- ALL awks will run out of file descriptors, some sooner (about 10), others later. So closing them if no more needed puts you on the safe side in either case at the (small) cost of a file operation.
Last edited by RudiC; 06-08-2015 at 10:01 AM..
Reason: typo
Expanding a little bit on what RudiC said: The standards do not specify the precedence of string concatenation and input or output redirection. So the statement:
can be evaluated as if it were written as:
(as it is with gawk and many other versions of awk), or as:
(as it is with awk on BSD systems, OS X systems, and many others). Explicitly adding the parentheses makes it clear which you want and makes that part of your code work with any version of awk in case you ever try to move your script to a different operating system.
And since I learned how to use awk on a system that only allowed ten open file descriptors (including the current input file and standard output), I always close file descriptors I no longer need unless I know (as part of the script specifications) that fewer than eight additional input and output files will be used during the lifetime of the script.
This User Gave Thanks to Don Cragun For This Post:
Team,
I want to change below parameter in all the files in a directory,
Check for HOSTNAME=`hostname`
Change to HOSTNAME=localhost
And I tried below but, its not working ☹
find /tmp -type f -exec sed 's/"HOSTNAME\=\`hostname\`"/"HOSTNAME\=localhost/g'"
Help me if I am missing... (6 Replies)
I am looking for help in processing of those options: '-n' or '-p'
I understand what they do and how to use them.
But, I would like to use them with more than one file (and without any shell-loop; loading the 'perl' once.)
I did try it and -n works on 2 files.
Question is:
- is it possible to... (6 Replies)
Dear All,
I would like to instantiate a "pattern file" substituting "variable name" by their content.
Saying, we have:
1/ a "pattern file" containing different "variable name", the first character of the "variable name" is "@":
$ cat TPTModl.txt
DEFINE... (12 Replies)
Greetings experts,
Have 2 input files, of which 1 file has 1 record per line; in 2nd file, multiple lines constitute 1 record; Hence declared the RS=";"
Now in the first file which ends with ";" at each line of the line; But \nis also being considered as part of the data due to which
I am... (1 Reply)
Hi,
I have multiple files having many lines like as bvelow:
file Name a.txt
abc def
def xyz
123 5678
file Name b.txt
abc def
def xyz
123 5678
I would like to append files in the below format to a new file:
file Name c.txt (7 Replies)
Hi all,
I have 20 files (file001.txt upto file020.txt) and I want to read them from 3rd line upto end of file (line 1002). But in the final file they should appear to start from line 1.
I need following kind of output in a single file:
Filename Line number 2ndcolumn 4thcolumn
I... (14 Replies)
Hi All
I have one query,say i have a requirement like the below code should be
move to diffent files whose maximum lines can be of 10 lines.Say in the below example,it consist of 14 lines.
This should be moved logically using the data in the fisrt coloumn to file1 and file 2.The data of first... (2 Replies)
Hi guys,
is there are way to substitute the content of certain line in the file by another entry if line number is available?
For example, I have a variable A="HCMLPBBG" and a file MYFILE.
I need to substitute entry on line 18168 of MYFILE with the value of the variable "A".
Is there a way to... (1 Reply)
How would I go about storing multiple file paths in a directory that begin like: 20080402*
and run a loop that reads each line of each file thats in a given directory. So far this is what I have:
#!/bin/ksh
echo "ENTER Reprint Date (YYYYMMDD): "
read ReprintDate
echo ""... (1 Reply)