Sponsored Content
Full Discussion: awk multiple lines
Top Forums UNIX for Advanced & Expert Users awk multiple lines Post 303041898 by RudiC on Friday 6th of December 2019 06:09:20 AM
Old 12-06-2019
I don't think you can have a swiss army knife solution to a wild card problem. Please decently describe the data conents / structure in all cases, for every case, in detail. Are above the only three cases, or are there more? Is that pipe symbol enclosed in spaces or not always? Could it be used as a field separator? WIll the more-than-four-line data always be using braces to enclose the last field? One level of braces only?

You seem to want to print sth. like
Code:
server1 drwxr-xr-x
server2 drwxr-xr-x

in the "good cases". What should be the output in the "FAILED" cases? What in the multiline case?


You could use sth. like this to get the full records to operate upon:

Code:
awk -F\| '
function RDREST()       {getline X; $0 = $0 " | " X
                        }
/{$/    {while (! /}/) RDREST()
        }
NF < 4  {RDREST()
        }
1
' file
server1 | CHANGED | rc=0 >> | drwxr-xr-x. 8 root root 77 Apr 18  2018 /directory1
server2 | CHANGED | rc=0 >> | drwxr-xr-x. 7 root root 120 Feb 14  2019 /directory2
server3 | FAILED | rc=2 >> | ls: /director3: No such file or directorynon-zero return code
server5 | FAILED | rc=2 >> | ls: cannot access /sirectory3: No such file or directorynon-zero return code
server4 | UNREACHABLE! => { |     "changed": false, |     "msg": "Data could not be sent to remote host \"server4\". Make sure this host can be reached over ssh: ", |     "unreachable": true | }


Last edited by RudiC; 12-06-2019 at 08:38 AM..
This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Awk Join multiple lines

Hi, I have data with broken lines: Sample data: "12"|"25"|"a"|"b"|"c"|"d"|"e"|"f"|"2453748"|"08:10:50" "16"|"25"|"a"|"b"|"c"|"d"|"e"|"f"|" 2453748"|"08:15:50" "16"|"25"|"a"|"b"|" c"|"d"|"e"|"f"|"2453748"|"08:19:50" "16"|"25"|"a"|"b"|"c"|"d"|"e"|"f"|"2453748"|"08:19:50" In the... (5 Replies)
Discussion started by: hitmansilentass
5 Replies

2. UNIX for Dummies Questions & Answers

print multiple lines with awk

Hi everyone! I'm not new to Unix, but I've never used awk before. I tried to look up this information on several sites and forums, I also looked in the documentation but I haven't found a solution yet. I would like to print the previous 3 lines before and the following 4 lines after the... (6 Replies)
Discussion started by: djcsabus
6 Replies

3. Shell Programming and Scripting

Awk to Break lines to multiple lines.

Input File: nawk -F "|" '{ for(i=1;i<=NF;i++) { if (i == 2) {gsub(",","#",$i);z=split($i,a,"")} else if (i == 3) {gsub(",","#",$i);z=split($i,b,"")} } if(z > 0) for(i=1;i<=z;i++) print $1,a,"Test"; if(w > 0) for(j=1;j<=w;j++) ... (1 Reply)
Discussion started by: pinnacle
1 Replies

4. Shell Programming and Scripting

AWK record in multiple lines

Hi everyboby this is my problem I Have this input 1111;222 222 2;333 3333;4444 111; 22222;33 33; 444 and I need this output 1111;2222222;3333333;4444 (15 Replies)
Discussion started by: agritur
15 Replies

5. Shell Programming and Scripting

displaying multiple lines using AWk

say I'm doing awk 'NR==534' Is there a way to display 534 535 536 537? without appending to a variable? per line? maybe an easier way with a different command? My first impression was NR==534-537 but that would be too easy :P (2 Replies)
Discussion started by: puttster
2 Replies

6. Shell Programming and Scripting

awk if conditional, multiple lines

Hi experts, I have a file with hundreds of lines that looks something like this: Cake 1 3 4 2 3 1 3 Onion 3 2 4 1 3 4 2 Apple 2 3 4 4 1 2 1 Orange 4 3 4 1 2 4 1 Cake 3 1 4 2 4 2 1 Onion 2 4 2 1 4 2 1 Apple 4 3 3 3 3 2 1 Orange 2 1 2 2 2 4 1 Cake 4 3 4 3 1 3 3 ... I'm trying to... (2 Replies)
Discussion started by: david_seeds
2 Replies

7. Shell Programming and Scripting

Awk match multiple columns in multiple lines in single file

Hi, Input 7488 7389 chr1.fa chr1.fa 3546 9887 chr5.fa chr9.fa 7387 7898 chrX.fa chr3.fa 7488 7389 chr21.fa chr3.fa 7488 7389 chr1.fa chr1.fa 3546 9887 chr9.fa chr5.fa 7898 7387 chrX.fa chr3.fa Desired Output 7488 7389 chr1.fa chr1.fa 2 3546 9887 chr5.fa chr9.fa 2... (2 Replies)
Discussion started by: jacobs.smith
2 Replies

8. Shell Programming and Scripting

awk to filter multiple lines

Hi. I need to filter lines based upon matches in multiple tab-separated columns. For all matching occurrences in column 1, check the corresponding column 4. IF all column 4 entries are identical, discard all lines. If even one entry in column 4 is different, then keep all lines. How can I... (5 Replies)
Discussion started by: owwow14
5 Replies

9. Shell Programming and Scripting

awk to parse multiple lines

What is the correct syntax to have the awk parse the next line as well? The next in bold is where I think it should go, but I wanted to ask the experts since I am a beginner. The file to be parsed is attached as well. Thank you :). awk 'NR==2 {split($2,a,"");b=substr(a,1,length(a-1));print... (6 Replies)
Discussion started by: cmccabe
6 Replies

10. Shell Programming and Scripting

Merging multiple lines to columns with awk, while inserting commas for missing lines

Hello all, I have a large csv file where there are four types of rows I need to merge into one row per person, where there is a column for each possible code / type of row, even if that code/row isn't there for that person. In the csv, a person may be listed from one to four times... (9 Replies)
Discussion started by: RalphNY
9 Replies
KNIFE-SEARCH(1) 						    Chef Manual 						   KNIFE-SEARCH(1)

NAME
knife-search - Find objects on a Chef Server by query SYNOPSIS
knife search INDEX QUERY (options) -a, --attribute ATTR Show only one attribute -i, --id-only Show only the ID of matching objects -q, --query QUERY The search query; useful to protect queries starting with - -R, --rows INT The number of rows to return -r, --run-list Show only the run list -o, --sort SORT The order to sort the results in -b, --start ROW The row to start returning results at -m, --medium Display medium sized output when searching nodes using the default summary format -l, --long Display long output when searching nodes using the default summary format DESCRIPTION
Search is a feature of the Chef Server that allows you to use a full-text search engine to query information about your infrastructure and applications. You can utilize this service via search calls in a recipe or the knife search command. The search syntax is based on Lucene. INDEXES
Search indexes are a feature of the Chef Server and the search sub-command allows querying any of the available indexes using SOLR query syntax. The following data types are indexed for search: o node o role o environment o clients o data bag Data bags are indexed by the data bag's name. For example, to search a data bag named "admins": knife search admins "field:search_pattern" QUERY SYNTAX
Queries have the form field:search_pattern where field is a key in the JSON description of the relevant objects (nodes, roles, environ- ments, or data bags). Both field and search_pattern are case-sensitive. search_pattern can be an exact, wildcard, range, or fuzzy match (see below). The field supports exact matching and limited wildcard matching. Searches will return the relevant objects (nodes, roles, environments, or data bags) where the search_pattern matches the object's value of field. FIELD NAMES Field names are the keys within the JSON description of the object being searched. Nested Keys can be searched by placing an underscore ("_") between key names. WILDCARD MATCHING FOR FIELD NAMES The field name also has limited support for wildcard matching. Both the "*" and "?" wildcards (see below) can be used within a field name; however, they cannot be the first character of the field name. EXACT MATCHES Without any search modifiers, a search returns those fields for which the search_pattern exactly matches the value of field in the JSON description of the object. WILDCARD MATCHES Search support both single- and multi-character wildcard searches within a search pattern. '?' matches exactly one character. '*' matches zero or more characters. RANGE MATCHES Range searches allows one to match values between two given values. To match values between X and Y, inclusively, use square brackets: knife search INDEX 'field:[X TO Y] To match values between X and Y, exclusively, use curly brackets: knife search INDEX 'field:{X TO Y}' Values are sorted in lexicographic order. FUZZY MATCHES Fuzzy searches allows one to match values based on the Levenshtein Distance algorithm. To perform a fuzzy match, append a tilda (~) to the search term: knife search INDEX 'field:term~' This search would return nodes whose field was 'perm' or 'germ'. BOOLEAN OPERATORS The boolean operators NOT, AND, and OR are supported. To find values of field that are not X: knife search INDEX 'field:(NOT X)' To find records where field1 is X and field2 is Y: knife search INDEX 'field1:X AND field2:Y' To find records where field is X or Y: knife search INDEX 'field:X OR field:Y' QUOTING AND SPECIAL CHARACTERS In order to avoid having special characters and escape sequences within your search term interpreted by either Ruby or the shell, enclose them in single quotes. Search terms that include spaces should be enclosed in double-quotes: knife search INDEX 'field:"term with spaces"' The following characters must be escaped: + - && || ! ( ) { } [ ] ^ " ~ * ? : EXAMPLES
Find the nodes with the fully-qualified domain name (FQDN) www.example.com: knife search node 'fqdn:www.example.com' Find the nodes running a version of Ubuntu: knife search node 'platform:ubuntu*' Find all nodes running CentOS in the production environment: knife search node 'chef_environment:production AND platform:centos' KNOWN BUGS
o Searches against the client index return no results in most cases. (CHEF-2477) o Searches using the fuzzy match operator (~) produce an error. (CHEF-2478) SEE ALSO
knife-ssh(1) http://wiki.opscode.com/display/chef/Attributes Lucene Query Parser Syntax http://lucene.apache.org/java/2_3_2/queryparsersyn- tax.html AUTHOR
Chef was written by Adam Jacob adam@opscode.com with many contributions from the community. DOCUMENTATION
This manual page was written by Joshua Timberman joshua@opscode.com. Permission is granted to copy, distribute and / or modify this docu- ment under the terms of the Apache 2.0 License. CHEF
Knife is distributed with Chef. http://wiki.opscode.com/display/chef/Home Chef 10.12.0 June 2012 KNIFE-SEARCH(1)
All times are GMT -4. The time now is 05:28 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy