Sponsored Content
Top Forums Shell Programming and Scripting Need a Linux command for find/replace column based on specific criteria. Post 302995407 by transat on Wednesday 5th of April 2017 01:03:45 PM
Old 04-05-2017
Need a Linux command for find/replace column based on specific criteria.

I'm new to shell programming, I have a huge text file in the following format, where columns are separated by single space:
Code:
ACA MEX 4O_ $98.00 $127.40 $166.60 0:00 0:00 0 ;
ACA YUL TS_ $300.00 $390.00 $510.00 0:00 0:00 0 ;
ACA YYZ TS_ $300.00 $390.00 $510.00 0:00 0:00 0 ;
ADZ YUL TS_ $300.00 $390.00 $510.00 0:00 0:00 0 ;
ADZ YYZ TS_ $300.00 $390.00 $510.00 0:00 0:00 0 ;
AGP AMS HV_ $441.00 $573.30 $749.70 0:00 0:00 0 ;
AGP AMS VY_ $235.00 $305.50 $399.50 0:00 0:00 0 ;

I want to replace all values in the 5th column by $-1.00 only when the third column is equal to "TS_". Basically the result of transforming the following line:
Code:
ACA YUL TS_ $300.00 $390.00 $510.00 0:00 0:00 0 ;

Would be:

Code:
ACA YUL TS_ $300.00 $-1.00 $510.00 0:00 0:00 0 ;

Is there any easy way to do it via AWK command ?

Please advise.


Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 04-05-2017 at 03:47 PM.. Reason: Added CODE tags.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Select records based on search criteria on first column

Hi All, I need to select only those records having a non zero record in the first column of a comma delimited file. Suppose my input file is having data like: "0","01/08/2005 07:11:15",1,1,"Created",,"01/08/2005" "0","01/08/2005 07:12:40",1,1,"Created",,"01/08/2005"... (2 Replies)
Discussion started by: shashi_kiran_v
2 Replies

2. Shell Programming and Scripting

Append specific lines to a previous line based on sequential search criteria

I'll try explain this as best I can. Let me know if it is not clear. I have large text files that contain data as such: 143593502 09-08-20 09:02:13 xxxxxxxxxxx xxxxxxxxxxx 09-08-20 09:02:11 N line 1 test line 2 test line 3 test 143593503 09-08-20 09:02:13... (3 Replies)
Discussion started by: jesse
3 Replies

3. Shell Programming and Scripting

substract column based on some criteria

Please guide if you know how to solve this. I have a tab delimited INPUT FILE where each record is separated by ----- ----- ABC 4935402 4936680 Pattern=Cheers07080.1 ABC 4932216 4932368 Pattern=Cheers07080.1 ABC 4931932 4932122 ... (8 Replies)
Discussion started by: sam_2921
8 Replies

4. Shell Programming and Scripting

Need an awk for a global find/replace in a file, specific column

I am new to unix and awk/sed etc... using C-Shell. Basically, I have a fixed length file that has 4 different record types on it, H, D, V, W all in column 1. I need to change all the W's in column 1 to D's. in the entire file. The W's can be anywhere in the file and must remain in the same... (3 Replies)
Discussion started by: jclanc8
3 Replies

5. UNIX for Dummies Questions & Answers

AWK Command to find text in specific column

I'm new to scripting and would appreciate any help. I have a list of over 20 words in File1 that I need to find in columns 10-15 of File2. I need the entire row of File2 that the File1 list matches. I originally used a grep command which works, but provides File1 results that can be found... (3 Replies)
Discussion started by: Chillin
3 Replies

6. Shell Programming and Scripting

Extract data based on specific search criteria

I have a huge file (about 2 millions records) contains data separated by “,” (comma). As part of the requirement, I can't change the format. The objective is to remove some of the records with the following condition. If the 23rd field on each line start with 302 , I need to remove that from the... (4 Replies)
Discussion started by: jaygamini
4 Replies

7. Shell Programming and Scripting

Find and replace string matching criteria

Dear Friends, I am looking for a way to replace a string (multiple lines) starting with something and ending with something (these two values do not change) with blank. Basically I want to delete this code injection accross many sites and folders. Search Code (across files and folders) that... (2 Replies)
Discussion started by: libras
2 Replies

8. Shell Programming and Scripting

Extract error records based on specific criteria from Unix file

Hi, I look for a awk one liner for below issue. input file ABC 1234 abc 12345 ABC 4567 678 XYZ xyz ght 678 ABC 787 yyuu ABC 789 7890 777 zxr hyip hyu mno uii 678 776 ABC ty7 888 All lines should be started with ABC as first field. If a record has another value for 1st... (7 Replies)
Discussion started by: ratheesh2011
7 Replies

9. Shell Programming and Scripting

Help with replace specific column command

Input file: ASD_QAW 12 A_@ AE_AQ 21 PA_123 ASDA_@ 23 ADA_AS . . Output file: ASD_QAW 12 A @ AE_AQ 21 PA 123 ASDA_@ 23 ADA AS . . Do anybody know how to just specific and replace "_" in column 3 with tab delimiter (\t)? Thanks for advice. (2 Replies)
Discussion started by: perl_beginner
2 Replies

10. Shell Programming and Scripting

awk to print specific line in file based on criteria

In the file below I am trying to extract a specific instance of path, if the adjacent plugin": "/rundb/api/v1/plugin/49/. Thank you :). file "path": "/results/analysis/output/Home/Auto_user_S5-00580-4-Medexome_65_028/plugin_out/FileExporter_out.52", "plugin": "/rundb/api/v1/plugin/49/",... (8 Replies)
Discussion started by: cmccabe
8 Replies
tabs(1) 						      General Commands Manual							   tabs(1)

NAME
tabs - Sets tab stops on terminals SYNOPSIS
tabs [-n] [-T terminal] [+m [margin]] tabs [predefined_tab_flag] [-T terminal] [+m [margin]] tabs [-T terminal] [+m [margin]] number [,number]... tabs [--tab_format_file] The tabs command clears up to 20 previous tabs and sets up to 40 tabs on the terminal according to the supplied tab specifications. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: tabs: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
Specifies repetitive tab stops separated by a uniform number of column positions, n, where n is a single-digit number. The default usage of tabs with no arguments is equivalent to tabs -8. If you use -0, the tab stops are cleared and no new ones are set. Identifies the terminal so that tabs can set tabs and margins correctly. The terminal argument is one of the conventional terminal names supported by your system. [Tru64 UNIX] If the terminal you specify is not known to the system, tabs tries a general value that works for most terminals. If you do not provide a -T option, tabs uses the TERM shell variable. Moves all tabs to the right number columns, and makes column number+1 the left margin. If m is given without a value, 10 is assumed. The leftmost margin on most terminals is defined by m0. Specifies that tabs should be set to a structured language format that is known to the system. See the section Predefined Tab Flags for a description of these flags. [Tru64 UNIX] Causes tabs to read a file named tab_format_file for format information. The first line of the file must be in the format shown in the section Format Specifications to use this method. The file may contain other lines which are ignored by tabs. Note [Tru64 UNIX] The double dash (--) format is mandatory with this option. OPERANDS
Sets tabs at the named column numbers (a list in ascending order, separated by commas). You can specify up to 40 numbers. If any number except the first has a plus sign prefix, the prefixed number is added to the previous number for the next setting. Thus, the tab lists 1,10,20,30 and 1,10,+10,+10 provide the same tab settings. DESCRIPTION
If you use the tabs command with no options or operands, the terminal tabs are reset to the system defaults for your terminal type. If only the -T option is used, tabs are reset to the defaults for that terminal type. [Tru64 UNIX] When you use the tabs command, always consider the leftmost column number to be 1, even if your terminal refers to it as 0 (zero). Tab-stop position n means that tabbing to position n causes the next character output to be in the n+1th column position on that line. Predefined Tab Flags [Tru64 UNIX] The flags described in the following list provide formats required by most structured programming languages. Some of these flags require that a particular format line be present in the file being manipulated. This is indicated in the list. Sets the tabs to 1, 10, 16, 36, and 72. Sets the tabs to 1, 10, 16, 40, and 72. Sets the tabs to 1, 8, 12, 16, 20, and 55 (COBOL normal format) Sets the tabs to 1, 6, 10, 14, and 49 (COBOL compact format, columns 1 to 6 omitted). With this code, the first column position corresponds to card col- umn 7. One space gets you to column 8, and a tab reaches column 12. Files using this code must include the following format specifica- tion: <:t-c2 m6 s66 d:> [Tru64 UNIX] See Format Specifications later in this reference page. Sets the tabs to 1, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, and 67 (COBOL compact format with more tabs than -c2). This is the recommended format for COBOL. Files using this code must include the following format specification: <:t-c3 m6 s66 d:> Sets the tabs to 1, 7, 11, 15, 19, and 23 (FORTRAN). Sets the tabs to 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, and 61 (PL/I). Sets the tabs to 1, 10, and 55 (SNOBOL). Sets the tabs to 1, 12, 20, and 44. Format Specifications [Tru64 UNIX] A format specification consists of a sequence of arguments separated by blanks and enclosed in brackets and colons: <: :>. Each argument consists of a keyletter and an optional value which immediately follows it. The following arguments can be used: [Tru64 UNIX] Specifies tab settings. The value for tabs can be: [Tru64 UNIX] A list of column numbers separated by commas, indicating tab stops at the specified columns. [Tru64 UNIX] A - (dash) followed by a number n, specifying tabs stops every n columns. [Tru64 UNIX] A preset tab specification, for example -a2. [Tru64 UNIX] Specifies a maximum line size, or length. The size specification must be an integer. (The value of size is checked after tabs have been expanded but before the margin is prepended.) [Tru64 UNIX] Specifies a number of spa- ces to be inserted at the beginning of each line. The margin specification must be an integer. [Tru64 UNIX] Indicates that the line con- taining the format specification is to be deleted from the converted file. [Tru64 UNIX] If a format specification can be disguised as a comment, for example * <:t5,10,15 s75 m5:> *, you do not need to include the d keyletter. [Tru64 UNIX] Indicates that the current format should prevail only until another format specification is encountered in the file. [Tru64 UNIX] Default values of t-8 and m0 are assumed if t and m arguments are not included in the specification; if s is not included, line size is not checked. If the first line of a file does not contain a format specification, these defaults are assumed for the entire file. NOTES
The tabs command assumes that standard output is the terminal. If standard output is redirected, the results are unpredicable. Full oper- ation of all capabilities may be restricted by the hardware. EXIT STATUS
The following exit values are returned: Successful completion. An error occurred. EXAMPLES
To set tabs every four spaces, enter: tabs -4 To clear all tabs, enter: tabs ENVIRONMENT VARIABLES
The following environment variables affect the execution of tabs: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multi-byte characters in arguments). Determines the locale for the for- mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. Determines the terminal type if the -T option is not used. SEE ALSO
Commands: expand(1), nroff(1), stty(1), tset(1) Standards: standards(5) tabs(1)
All times are GMT -4. The time now is 08:40 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy