Sponsored Content
Top Forums Shell Programming and Scripting Awk , Sed Print last 4 numeric characters Post 302366773 by abacus on Friday 30th of October 2009 10:01:51 AM
Old 10-30-2009
Awk , Sed Print last 4 numeric characters

Hello All,
I have been searching and trying this for a bit now. Can use some assistance.

Large 5000 line flat file.
bash, rhel5

Code:
Input File Sinppet:

Fri Oct 30 09:24:02 EDT 2009 -- 1030
Fri Oct 30 09:26:01 EDT 2009 -- 73 
Fri Oct 30 09:28:01 EDT 2009 -- 1220
Fri Oct 30 09:30:01 EDT 2009 -- 111 
Fri Oct 30 09:32:01 EDT 2009 -- 56 
Fri Oct 30 09:34:01 EDT 2009 -- 1136 
Fri Oct 30 09:36:01 EDT 2009 -- 84 
Fri Oct 30 09:38:01 EDT 2009 -- 67 
Fri Oct 30 09:40:02 EDT 2009 -- 1145 
Fri Oct 30 09:42:01 EDT 2009 -- 85 
Fri Oct 30 09:44:01 EDT 2009 -- 63 
Fri Oct 30 09:46:01 EDT 2009 -- 115 
Fri Oct 30 09:48:01 EDT 2009 -- 72

I would like to redirect output to file in the following format. Basically if the tail number contains 3 or 4 characters, output it to the file.

Code:
Desired Output

Fri Oct 30 09:24:02 EDT 2009 -- 1030
Fri Oct 30 09:28:01 EDT 2009 -- 1220
Fri Oct 30 09:30:01 EDT 2009 -- 111
Fri Oct 30 09:34:01 EDT 2009 -- 1136
Fri Oct 30 09:40:02 EDT 2009 -- 1145
Fri Oct 30 09:46:01 EDT 2009 -- 115

I have been playing with AWK, SED GREP and CUT. My research is pointing me to something like this:

Code:
[root@db3 ~]# awk '{ print substr( $0, length($0) - 4, length($0) ) }' file > newfile
 1030
- 73 
 1220
 111 
- 56 
1136 
- 84 
- 67 
1145 
- 85 
- 63 
 115 
-- 72

However it's still giving the 2 number strings. And the date is not getting printed.

Please Advise.

Regards,

Bacus
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk/sed with special characters

i have this script that searches for a pattern. However it fails if the pattern includes some special characters. So far, it fails with the following strings: 1. -Cr 2. $Mj 3. H'412 would a sed or awk be more effective? i don't want the users to put the (\) during the search (they... (5 Replies)
Discussion started by: apalex
5 Replies

2. Solaris

Password without numeric characters

G'day guys, Just a simple question: Is it possible to set user's passwords without numeric characters? I prefer to have passwords as simple words, but when going through SMC, i get an error that the first six characters must contain at least 2 alphabetic and 1 numeric. Server is a Sun... (3 Replies)
Discussion started by: drchris
3 Replies

3. Shell Programming and Scripting

Sed and awk backslash characters

Hi, I have a variable read from user input: PROFILESROOTDIR="\\194.185.82.188\CMSRepository\EncodingProfiles" awk -F"=" -v gr=$PROFILESROOTDIR '/ProfilesRootDirectoryFromXOEMachine/{$2=gr;}1' OFS="=" $CFGFILE > "${CFGFILE}_new" For this awk to work properly I need to replace in the... (7 Replies)
Discussion started by: potro
7 Replies

4. Shell Programming and Scripting

Extract some characters with SED or AWK

Hi, I have the following example string: today_is_a_good_day.txt The character "_" inside the string can sometimes be more or less. The solution for every string equal the count of "_" should be alway the rest after the last underline character. Result: day.txt I want to use awk... (5 Replies)
Discussion started by: climber
5 Replies

5. Shell Programming and Scripting

awk and sed, how to exclude certain characters

Hello everyone: I have ran into this a few times now where my skills are just not up to snuff when it comes to Unix. So, I came here to find some beard stroking Unix wizard to help me. Basically, I am using OS X 10.5 in large scale at work and sometimes I have to run some custom reports. ... (5 Replies)
Discussion started by: tlarkin
5 Replies

6. Shell Programming and Scripting

sed/awk-adding numeric to a column

I have a txt file as follows Code: Oct 1 file1 4144 Oct 1 file23 5170 Oct 2 file5 3434 Oct 21 file56 2343 I need to add a new column by marking the right log file from current directory. For example populate like this. Please not in the second columt for "1" it has... (2 Replies)
Discussion started by: gubbu
2 Replies

7. Shell Programming and Scripting

awk print $1 escape all special characters

I'm using awk '{print $1}' and it works most of the time to print the contents of a mysql query loop, but occationally I get a field with some special character in it, is there a way to tell awk to ignore all special characters between my FS? I have >186K records, so building a list of ALL special... (6 Replies)
Discussion started by: unclecameron
6 Replies

8. Shell Programming and Scripting

Use awk to print first 6 characters

Hi, i want to use awk to print the first 6 characters of a variable awk -F"|" '$3>0 { print $3 }' z00.unl > z001.unl but $3= 7 digits and i just want to print the first 6 digits. eg 1005779 but i want to print only 100577 (3 Replies)
Discussion started by: dealerso
3 Replies

9. Shell Programming and Scripting

How to ignore characters and print only numbers using awk?

Input: ak=70&cat15481=lot=6991901">Kaschau (1820-1840) ak=7078&cat15482=lot=70121">Principauté (1940-1993) ak=709&cat=lot15484=70183944">Arubas (4543-5043)Output: 70 15481 6991901 7078 15482 70121 709 15484 70183944 (11 Replies)
Discussion started by: sdf
11 Replies

10. Shell Programming and Scripting

awk to print column number while ignoring alpha characters

I have the following script that will print column 4 ("25") when column 1 contains "123". However, I need to ignore the alpha characters that are contained in the input file. If I were to ignore the characters my output would be column 3. What is the best way to print my column of interest... (3 Replies)
Discussion started by: ncwxpanther
3 Replies
getdate(3C)															       getdate(3C)

NAME
getdate() - convert user format date and time SYNOPSIS
Obsolescent Interface DESCRIPTION
The function converts user definable date and/or time specifications pointed to by string into a The structure declaration is in the header file (see ctime(3C)). User-supplied templates are used to parse and interpret the input string. The templates are text files created by the user and identified via the environment variable should be set to indicate the full path name of the template file. The first line in the template that matches the input specification is used for interpretation and conversion into the internal time format. Upon successful completion, returns a pointer to a otherwise, it returns NULL and the symbol is set to indicate the error. The following field descriptors are supported: same as abbreviated weekday name full weekday name abbreviated month name full month name locale's appropriate date and time representation century number (00 through 99; leading zeros are permitted but not required) day of the month (01 through 31; the leading 0 is optional) same as date as abbreviated month name hour (00 through 23) hour (01 through 12) month number (01 through 12) minute (00 through 59) same as locale's equivalent of either AM or PM time as time as seconds (00 through 61) insert a tab time as weekday number (Sunday = 0 through Saturday = 6) locale's appropriate date representation locale's appropriate time representation year without century (00 through 99). For inputs 69-99, the 20th century(1900s) is assumed, and for inputs 00-68, the 21st century(2000s) is assumed. year as ccyy (e.g., 1986) time zone name or no characters if no time zone exists. If the time zone supplied by is not the same as the time zone expects, an invalid specification error is returned. calcu- lates the expected time zone from the environment variable. Month and weekday names may consist of any combination of uppercase and lowercase letters. The user can request that the input date or time specification be in a specific language by setting the category (see setlocale(3C)). For descriptors that allow leading zeros, leading zeros are optional. However, the number of digits used for those descriptors must not exceed two, including leading zeros. Extra whitespace in either the template file or in string is ignored. The field descriptors and are not supported if they include unsupported field descriptors. The following example shows the possible contents of a template: The following are examples of valid input specifications for the above template: If the category is set to a German locale that includes as a weekday name and as a month name, the following would be valid: This example shows how local date and time specification can be defined in the template: +---------------------------+------------------+ | Invocation | Line in Template | +---------------------------+------------------+ |getdate("11/27/86") | %m/%d/%y | |getdate("27.11.86") | %d.%m.%y | |getdate("86-11-27") | %y-%m-%d | |getdate("Friday 12:00:00") | %A %H:%M:%S | +---------------------------+------------------+ The following rules apply when converting the input specification into the internal format: o If only the weekday is given, today is assumed if the given day is equal to the current day, and next week if it is less. o If only the month is given, the current month is assumed if the given month is equal to the current month, and next year if it is less and no year is given (the first day of the month is assumed if no day is given). o If no hour, minute and second are given, the current hour, minute and second are assumed. o If no date is given, today is assumed if the given hour is greater than the current hour and tomorrow is assumed if it is less. The following examples help to illustrate the above rules assuming that the current date is and the category is set to the default locale. +-------------+----------+------------------------------+ | | Line in | | | Input | Template | Date | +-------------+----------+------------------------------+ |Mon | %a | Mon Sep 22 12:19:47 EDT 1986 | |Sun | %a | Sun Sep 28 12:19:47 EDT 1986 | |Fri | %a | Fri Sep 26 12:19:47 EDT 1986 | |September | %B | Mon Sep 1 12:19:47 EDT 1986 | |January | %B | Thu Jan 1 12:19:47 EST 1987 | |December | %B | Mon Dec 1 12:19:47 EST 1986 | |Sep Mon | %b %a | Mon Sep 1 12:19:47 EDT 1986 | |Jan Fri | %b %a | Fri Jan 2 12:19:47 EST 1987 | |Dec Mon | %b %a | Mon Dec 1 12:19:47 EST 1986 | |Jan Wed 1989 | %b %a %Y | Wed Jan 4 12:19:47 EST 1989 | |Fri 9 | %a %H | Fri Sep 26 09:00:00 EDT 1986 | |Feb 10:30 | %b %H:%S | Sun Feb 1 10:30:00 EST 1987 | |10:30 | %H:%M | Tue Sep 23 10:30:00 EDT 1986 | |13:30 | %H:%M | Mon Sep 22 13:30:00 EDT 1986 | +-------------+----------+------------------------------+ Obsolescent Interface converts user format date and time. Also see the section. ERRORS
Upon failure, returns NULL and the symbol is set to indicate the error. The following is a complete list of the settings and their interpretation: the environment variable is null or undefined, the template file cannot be opened for reading, failed to get file status information, the template file is not a regular file, an error is encountered while reading the template file, memory allocation failed (not enough memory available), there is no line in the template that matches the input, invalid input specification. For example, February 31; or the time specified cannot be represented in the data type in 32-bit HP-UX (which represents Tuesday January 19 03:14:07 UTC, 2038) or exceeds the maximum date supported in 64-bit HP-UX (which is Friday December 31 23:59:59 UTC, 9999). WARNINGS
The return value for points to data whose content is overwritten by each call by the same thread. is an obsolescent interface supported only for compatibility with existing DCE applications. New multi-threaded applications should use SEE ALSO
ctime(3C), ctype(3C), setlocale(3C), strftime(3C), thread_safety(5). getdate(3C)
All times are GMT -4. The time now is 12:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy