Sponsored Content
Top Forums Shell Programming and Scripting Search for a substr with nawk Post 302785921 by alister on Tuesday 26th of March 2013 02:18:37 PM
Old 03-26-2013
Well, if your file does actually consist of fixed length fields, then the length of the substring extracted and the length of the string literal used for comparison should both be equal to the length of the field.

If, however, your file does not consist of fixed fields, and is instead delimited by whitespace or some other field separator, then Corona has already given you the correct solution.

Regards,
Alister
This User Gave Thanks to alister For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using substr

What is the more efficient way to do this (awk only and default FS) ? $ echo "jefe@alm"|awk '{pos = index($0, "@");printf ("USER: %s\n",substr ($0,1,pos-1))}' USER: jefe Thx in advance (2 Replies)
Discussion started by: Klashxx
2 Replies

2. UNIX for Dummies Questions & Answers

Substr

Hi, My input file is 41;2;xxxx;yyyyy.... 41;2;xxxx;yyyyy.... 41;2;xxxx;yyyyy.... .. .. I need to change the second field value from 2 to 1. i.e., 41;1;xxxx;yyyyy.... 41;1;xxxx;yyyyy.... 41;1;xxxx;yyyyy.... .. .. Thanks in advance. (9 Replies)
Discussion started by: deepakwins
9 Replies

3. Shell Programming and Scripting

get substr?

Hi, I have a long string like, aabab|bcbcbcbbc|defgh|paswd123 dedededede|efef|ghijklmn|paswd234 ghghghghgh|ijijii|klllkkk|paswd345 lmlmlmmm|nononononn|opopopopp|paswd456 This string is devided into one space between substrings. This substrings are, aabab|bcbcbcbbc|defgh|paswd123... (6 Replies)
Discussion started by: syamkp
6 Replies

4. Shell Programming and Scripting

how to access values of awk/nawk variables outside the awk/nawk block?

i'm new to shell scripting and have a problem please help me in the script i have a nawk block which has a variable count nawk{ . . . count=count+1 print count } now i want to access the value of the count variable outside the awk block,like.. s=`expr count / m` (m is... (5 Replies)
Discussion started by: saniya
5 Replies

5. UNIX for Dummies Questions & Answers

substr

can anybody explain this code? thanks in advance..:) (6 Replies)
Discussion started by: janani_kalyan
6 Replies

6. Shell Programming and Scripting

Nesting - two nawk into one nawk

hi people; this is my two awk code: nawk '/cell+-/{r=(NF==8) ? $4FS$5FS$6 : NF==7 ? $4FS$5 : $4 ;c=split(r,rr);for (i=1;i<=c;i++){if(rr != "111111"){printf($3" %d ""\n",(i+3))}}printf("")}' /home/gc_sw/str.txt > /home/gc_sw/predwn.txt nawk -F'*' '{gsub(/ *$/,"")}$0=$1$($NF-2)'... (2 Replies)
Discussion started by: gc_sw
2 Replies

7. Shell Programming and Scripting

search pattern that has spaces with nawk

Hi guys, I need a help ! I need do grab some string from file and then count n lines after that pattern. This is working fine, but my problem is that the string to be searched has spaces within, like an example : LINK COUNTERS what I am using is: nawk... (2 Replies)
Discussion started by: robdcb
2 Replies

8. Shell Programming and Scripting

Nawk Problem - nawk out of space in tostring on

Hi.. i am running nawk scripts on solaris system to get records of file1 not in file2 and find duplicate records in a while with the following scripts -compare nawk 'NR==FNR{a++;next;} !a {print"line"FNR $0}' file1 file2duplicate - nawk '{a++}END{for(i in a){if(a-1)print i,a}}' file1in the middle... (12 Replies)
Discussion started by: Abhiraj Singh
12 Replies

9. UNIX for Dummies Questions & Answers

Substr

awk '/^>/{id=$0;next}length>=7 { print id, "\n"$0}' Test.txt Can I use substr to achieve the same task? Thanks! (8 Replies)
Discussion started by: Xterra
8 Replies

10. Shell Programming and Scripting

Search comppare replace (substr/lppad)

Hi Everyone, I have a data file with data as below which contains millions of data and gets loaded to database using SQL loader using positional notation. AT 0001 000000000100000000000 BE 4 000000000000030000000 DE 0055 000004000000000000000 FR 0 ... (8 Replies)
Discussion started by: Showdown
8 Replies
scsi_ext_sense_fields(9F)				   Kernel Functions for Drivers 				 scsi_ext_sense_fields(9F)

NAME
scsi_ext_sense_fields, scsi_sense_info_uint64, scsi_sense_cmdspecific_uint64 - retrieve fields from SCSI sense data SYNOPSIS
#include <sys/scsi/scsi.h> void scsi_ext_sense_fields(uint8_t *sense_buffer, int *sense_buf_len, uint8_t **information, uint8_t **cmd_spec_info, uint8_t **fru_code, uint8_t **sk_specific, uint8_t **stream_flags); boolean_t scsi_sense_info_uint64(uint8_t *sense_buffer, int sense_buf_len, uint64_t *information); boolean_t scsi_sense_cmdspecific_uint64(uint8_t *sense_buffer, int sense_buf_len, uint64_t *cmd_spec_info); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
sense_buffer Pointer to a buffer containing SCSI sense data. The sense data is expected in wire format starting at the response code. It can be in either a fixed or descriptor format. information For scsi_ext_sense_fields(), this is a call-by-reference pointer to uint8_t. A pointer to the INFORMATION field in the sense data may be returned in this parameter. The scsi_sense_info_uint64() function requires a pointer to uint64_t. The data in the information field is returned as a 64 bit integer. If the sense data information field is 32 bits, fixed format, the most significant 32-bits are 0. cmd_spec_info For scsi_ext_sense_fields(), this is a call-by-reference pointer to uint8_t. A pointer to the COMMAND_SPECIFIC INFORMATION field in the sense data can be returned in this parameter. The scsi_sense_cmdspecific_uint64() function requires a pointer to uint64_t. The data in the command specific information field is returned as a 64 bit integer. If the sense data command specific information field is 32 bits, fixed format, the most significant 32-bits are 0. fru_code Call-by-reference pointer to uint8_t. A pointer to the FIELD REPLACEABLE UNIT CODE field in the sense data can be returned in this parameter. sk_specific Call-by-reference pointer to uint8_t. A pointer to the SENSE KEY SPECIFIC field in the sense data can be returned in this parameter. stream_flags Call-by-reference pointer to uint8_t. A pointer to the byte containing the ILI, EOM, and FILEMARK flags can be returned in this parameter. DESCRIPTION
The scsi_ext_sense_fields() function can be used to retrieve any of the extended sense data fields from a sense data buffer, regardless of whether the sense data is in fixed format or in descriptor format. The information, cmd_spec_info, fru_code, sk_specific, and stream_specific parameters are all call-by-reference output parameters. Each parameter corresponds to one or more of the extended sense data fields. Any of these parameters can be passed as NULL if the caller is not interested in the associated data. If the requested data is present and valid for each output parameter, the pointer passed in is set to point to the relevant location in the sense buffer. If the data is not present or invalid, the pointer is set to NULL. For example, a caller that requests a pointer to the information field would get NULL when an information descriptor is not present for descriptor format sense data or when the valid bit is not set for fixed format sense data. The information and command specific information fields can be 4 bytes or 8 bytes in length, depending on whether the sense data is in fixed or descriptor format respectively. Drivers can use scsi_validate_sense(9F) to determine the sense data format and, by extension, the length of the information and command specific information fields. A driver can determine whether integer data is included in the information or command specific information fields based on the asc and ascq sense keys, such as the LBA of a failed disk request. The scsi_sense_info_uint64() function retrieves the contents of the information field as a 64 bit integer and the scsi_sense_cmdspecific_uint64() retrieves the command specific information field as a 64 bit integer. Drivers should use scsi_validate_sense(9F) to ensure that the sense buffer contains valid sense data. RETURN VALUES
The scsi_sense_info_uint64() function returns TRUE if the information field is present and valid. Otherwise it returns FALSE. The scsi_sense_cmdspecific_uint64() function returns TRUE if the command specific information field is present and valid. Otherwise it returns FALSE. CONTEXT
The scsi_ext_sense_fields(), scsi_sense_info_uint64() and scsi_sense_cmdspecific_uint64()() functions can be called from user or interrupt context. SEE ALSO
scsi_find_sense_descr(9F), scsi_sense_asc(9F), scsi_sense_ascq(9F), scsi_sense_key(9F), scsi_validate_sense(9F) SunOS 5.11 29 Jun 2006 scsi_ext_sense_fields(9F)
All times are GMT -4. The time now is 09:30 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy