Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Create the space only in the Third column by awk Post 303042167 by RudiC on Tuesday 17th of December 2019 06:49:14 AM
Old 12-17-2019
You present a difficult data structure that cannot be handled with the usual, generic,"normal" awk methods, like fields, field separators, data elements in one line. You have vertical "pin numbers" in varying fields, positional pointers into to a beforementioned line, no indicator where data begin in a line. That makes a somewhat non-standard approach necessary, relying on unconfirmed, unverified assumptions.



Code:
awk '
NR == 1         {L = index ($0, "r") - 1        # on the first line, calculate where the (all space) lead-in part ends (and 
                }                               # the (non-space) data begin)
                {T = substr ($0, L)             # save the "data part" of each line in a temp variable
                 gsub (/./, "& ", T)            # add a space to every single char in the temp var
                 print substr ($0, 1, L), T     # print the first, unmodified part of the line (= $1 and $2),
                }                               # then the "spaced" data part in temp var
' file


Last edited by RudiC; 12-17-2019 at 10:05 AM..
 

10 More Discussions You Might Find Interesting

1. AIX

column space

Is it possible to give spaces using unix commands at a particular column? eg: 123 56 89(input) 123 56 89(output) (4 Replies)
Discussion started by: rollthecoin
4 Replies

2. Filesystems, Disks and Memory

Create file for space Reserve

Hi All, I want to make a 3GB of space reserve on Solaris. Let me know whether there is a way by creating empty file of 3GB so that i can delete that file in future to utilize that space. Or any other better ways for space reserve. -Vinodh' Kumar (4 Replies)
Discussion started by: vino_hymi
4 Replies

3. Solaris

Create user with Restricted Space usage

Hi, What is the command or how to create a user with the restricted usage of space on a disk. Also let me know how to change the limit of the space size allotted in future for the same user. ~Vinodh Kumar V M (3 Replies)
Discussion started by: vino_hymi
3 Replies

4. Shell Programming and Scripting

AWK script to create max value of 3rd column, grouping by first column

Hi, I need an awk script (or whatever shell-construct) that would take data like below and get the max value of 3 column, when grouping by the 1st column. clientname,day-of-month,max-users ----------------------------------- client1,20120610,5 client2,20120610,2 client3,20120610,7... (3 Replies)
Discussion started by: ckmehta
3 Replies

5. UNIX for Advanced & Expert Users

Need to remove leading space from awk statement space from calculation

I created a awk state to calculate the number of success however when the query runs it has a leading zero. Any ideas on how to remove the leading zero from the calculation? Here is my query: cat myfile.log | grep | awk '{print $2,$3,$7,$11,$15,$19,$23,$27,$31,$35($19/$15*100)}' 02:00:00... (1 Reply)
Discussion started by: bizomb
1 Replies

6. Shell Programming and Scripting

awk Print New Column For Every Two Lines and Match On Multiple Column Values to print another column

Hi, My input files is like this axis1 0 1 10 axis2 0 1 5 axis1 1 2 -4 axis2 2 3 -3 axis1 3 4 5 axis2 3 4 -1 axis1 4 5 -6 axis2 4 5 1 Now, these are my following tasks 1. Print a first column for every two rows that has the same value followed by a string. 2. Match on the... (3 Replies)
Discussion started by: jacobs.smith
3 Replies

7. Shell Programming and Scripting

Help needed to create a UNIX Space monitoring script

Hi All, Its urgent.. pls help me out.. I want to create a KSH which should generate a report with the list of users and the files larger than 5 GB created by them in a direcorty and send autogenerated e-mail to them. my input would be users list,directory path and the file size (say 5 GB) ... (11 Replies)
Discussion started by: anman0523
11 Replies

8. Shell Programming and Scripting

Create new rows for each column value with awk

Hi, I have the following type of data that is separated by tabs: -2 abandonar abandono abandonas abandona abandonamos abandonáis abandonan -4 abandonado abandonada abandonados abandonadas -2 abandona abandonos ... (1 Reply)
Discussion started by: owwow14
1 Replies

9. Shell Programming and Scripting

awk to create variables to pass into a bash loop to create a download link

I have created one file that contains all the necessary info in it to create a download link. In each of the lines /results/analysis/output/Home/Auto_user_S5-00580-6-Medexome_67_032/plugin_out/FileExporter_out.67... (8 Replies)
Discussion started by: cmccabe
8 Replies

10. Shell Programming and Scripting

Space moving to next column (awk HTML)

Hi I have create a report and have converted the text output to HTML but in the output there is a sentence "The transaction was aborted by the user.", the spaces between this sentence is considered as separate column. How can I overcome the same? I am providing my code, text output and... (7 Replies)
Discussion started by: Dumpi16
7 Replies
INNWATCH.CTL(5) 						File Formats Manual						   INNWATCH.CTL(5)

NAME
innwatch.ctl - control Usenet supervision by innwatch DESCRIPTION
The file /etc/news/innwatch.ctl is used to determine what actions are taken during the periodic supervisions by innwatch. The file consists of a series of lines; blank lines and lines beginning with a number sign (``#'') are ignored. All other lines consist of seven fields, each preceded by a delimiting character: :label:state:condition:test:limit:command:reason The delimiter can be any one of several non-alphanumeric characters that does not appear elsewhere in the line; there is no way to quote it to include it in any of the fields. Any of ``!'', ``,'', ``:'', ``@'', ``;'', or ``?'' is a good choice. Each line can have a different delimiter; the first character on each line is the delimiter for that line. White space surrounding delimiters, except before the first, is ignored, and does not form part of the fields, white space within fields is permitted. All delimiters must be present. The first field is a label for the control line. It is used as an internal state indicator and in ctlinnd messages to control the server. If omitted, the line number is used. The second field specifies when this control line should be used. It consists of a list of labels, and special indicators, separated by whitespace. If the current state matches against any of the labels in this field, this line will be used as described below. The values that may be used are: - This line matches if the current state is the same as the label on this line, or if the current state is ``run,'' the initial state. This is also the default state if this field is empty. + This line matches if the current state is ``run.'' * This line always matches. label This line matches if the current state is the specified ``label.'' -label This line matches if the current state is not the specified ``label.'' The third field specifies a shell command that is invoked if this line matches. Do not use any shell filename expansion characters such as ``*'', ``?'', or ``['' (even quoted, they're not likely to work as intended). If the command succeeds, as indicated by its exit status, it is expected to have printed a single integer to standard output. This gives the value of this control line, to be used below. If the com- mand fails, the line is ignored. The command is executed with its current directory set to the news spool directory, /var/spool/news. The fourth field specifies the operator to use to test the value returned above. It should be one of the two letter numeric test operators defined in test(1) such as ``eq'', ``lt'' and the like. The leading dash (`'-'') should not be included. The fifth field specifies a constant with which to compare the value using the operator just defined. This is done by invoking the command test value -operator constant The line is said to ``succeed'' if it returns true. The sixth field specifies what should be done if the line succeeds, and in some cases if it fails. Any of the following words may be used: throttle Causes innwatch to throttle the server if this line succeeds. It also sets the state to the value of the line's label. If the line fails, and the state was previously equal to the label on this line (that is, this line had previously succeeded), then a go command will be sent to the server, and innwatch will return to the ``run'' state. The ``throttle'' is only performed if the current state is ``run'' or a state other than the label of this line, regardless of whether the command succeeds. pause Is identical to ``throttle'' except that the server is paused. shutdown Sends a ``shutdown'' command to the server. It is for emergency use only. flush Sends a ``flush'' command to the server. go Causes innwatch to send a ``go'' command to the server and to set the state to ``run.'' exit Causes innwatch to exit. skip The result of the control file is skipped for the current pass. The last field specifies the reason that is used in those ctlinnd commands that require one. More strictly, it is part of the reason -- innwatch appends some information to it. In order to enable other sites to recognize the state of the local innd server, this field should usually be set to one of several standard values. Use ``No space'' if the server is rejecting articles because of a lack of filesystem resources. Use ``loadav'' if the server is rejecting articles because of a lack of CPU resources. Once innwatch has taken some action as a consequence of its control line, it skips the rest of the control file for this pass. If the action was to restart the server (that is, issue a ``go'' command), then the next pass will commence almost immediately, so that innwatch can discover any other condition that may mean that the server should be suspended again. EXAMPLES
@@@df .|awk 'NR==2 {print $4}'@lt@10000@throttle@No space @@@df -i .|awk 'NR==2 {print $4}'@lt@1000@throttle@No space (inodes) The first line causes the server to be throttled if the free space drops below 10000 units (using whatever units df uses), and restarted again when free space increases above the threshold. The second line does the same for inodes. The next three lines act as a group and should appear in the following order. It is easier to explain them, however, if they are described from the last up. !load!load hiload!loadavg!lt!5!go! :hiload:+ load:loadavg:gt:8:throttle:loadav /load/+/loadavg/ge/6/pause/loadav The final line causes the server to be paused if innwatch is in the ``run'' state and the load average rises to, or above, six. The state is set to ``load'' when this happens. The previous line causes the server to be throttled when innwatch is in the ``run'' or ``load'' state, and the load average rises above eight. The state is set to ``hiload'' when this happens. Note that innwatch can switch the server from ``paused'' to ``throttled'' if the load average rises from below six to between six and seven, and then to above eight. The first line causes the server to be sent a ``go'' command if innwatch is in the ``load'' or ``hiload'' state, and the load average drops below five. Note that all three lines assume a mythical command loadavg that is assumed to print the current load average as an integer. In more prac- tical circumstances, a pipe of uptime into awk is more likely to be useful. BUGS
This file must be tailored for each individual site, the sample supplied is truly no more than a sample. The file should be ordered so that the more common problems are tested first. The ``run'' state is not actually identified by the label with that three letter name, and using it will not work as expected. Using an ``unusual'' character for the delimiter such as ``('', ``*'', ``&'', ```'', ``''', and the like, is likely to lead to obscure and hard to locate bugs. HISTORY
Written by <kre@munnari.oz.au> for InterNetNews. This is revision 1.5, dated 1996/09/06. SEE ALSO
innd(8), ctlinnd(8), news.daily(8). INNWATCH.CTL(5)
All times are GMT -4. The time now is 03:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy