Sponsored Content
Top Forums Shell Programming and Scripting Need an awk / sed / or perl one-liner to remove last 4 characters with non-unique pattern. Post 302561672 by itkamaraj on Tuesday 4th of October 2011 10:53:56 PM
Old 10-04-2011
Code:
 
nawk -F\| 'BEGIN{OFS="|"}{if($NF~/\./)$NF=substr($NF,1,index($NF,".")-1); print}' test                                                           
QUX         | LIBMEM.SYS.OA      | 20110920 110704
SA          | LIBMEM.SYS.OA      | 20110920 110706
SD          | LIBMEM.SYS.OA      | 20110920 110708
SP          | LIBMEM.SYS.OA      | 20110920 110711
SR          | LIBMEM.SYS.OA      | 20110920 110713
SYSTEM      | LIBMEM.SYS.OA      | 20110920 110714
UB          | LIBMEM.SYS.OA      | 20110920 110716
VDRDAILY    | LIBMEM.SYS.OA      | 20110920 110720
VDRWKLY     | LIBMEM.SYS.OA      | 20110920 110831
VP          | LIBMEM.SYS.OA      | 20110920 110834
WC          | LIBMEM.SYS.OA      | 20110922 131601
WS          | LIBMEM.SYS.OA      | 20110923 084845
AD          | LIBMEM.SYS.OA      | 20110920 112837
AQ          | LIBMEM.SYS.OA      | 20110920 112839
DD          | LIBMEM.SYS.OA      | 20110920 112840
DP          | LIBMEM.SYS.OA      | 20110920 112842

---------- Post updated at 08:23 AM ---------- Previous update was at 08:19 AM ----------

Code:
$ perl -lane '$_=~s/[.][0-9]*$//; print $_' test
QUX         | LIBMEM.SYS.OA      | 20110920 110704
SA          | LIBMEM.SYS.OA      | 20110920 110706
SD          | LIBMEM.SYS.OA      | 20110920 110708
SP          | LIBMEM.SYS.OA      | 20110920 110711
SR          | LIBMEM.SYS.OA      | 20110920 110713
SYSTEM      | LIBMEM.SYS.OA      | 20110920 110714
UB          | LIBMEM.SYS.OA      | 20110920 110716
VDRDAILY    | LIBMEM.SYS.OA      | 20110920 110720
VDRWKLY     | LIBMEM.SYS.OA      | 20110920 110831
VP          | LIBMEM.SYS.OA      | 20110920 110834
WC          | LIBMEM.SYS.OA      | 20110922 131601
WS          | LIBMEM.SYS.OA      | 20110923 084845
AD          | LIBMEM.SYS.OA      | 20110920 112837
AQ          | LIBMEM.SYS.OA      | 20110920 112839
DD          | LIBMEM.SYS.OA      | 20110920 112840
DP          | LIBMEM.SYS.OA      | 20110920 112842

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to remove spaces using awk,sed,perl?

Input: 3456 565 656 878 235 8 4 8787 3 7 35 878 Expected output: 3456 565 656 878 235 8 4 8787 3 7 35 878 How can i do this with awk,sed and perl? (10 Replies)
Discussion started by: cola
10 Replies

2. Shell Programming and Scripting

Deleting characters with sed,perl,awk

Input: :: gstreamer :: xine-lib :: xine-lib-extras Output should be: gstreamer xine-lib xine-lib-extras How can it be done with sed or perl? (12 Replies)
Discussion started by: cola
12 Replies

3. Shell Programming and Scripting

Search & Replace regex Perl one liner to AWK one liner

Thanks for giving your time and effort to answer questions and helping newbies like me understand awk. I have a huge file, millions of lines, so perl takes quite a bit of time, I'd like to convert these perl one liners to awk. Basically I'd like all lines with ISA sandwiched between... (9 Replies)
Discussion started by: verge
9 Replies

4. Shell Programming and Scripting

Sed or awk : pattern selection based on special characters

Hello All, I am here again scratching my head on pattern selection with special characters. I have a large file having around 200 entries and i have to select a single line based on a pattern. I am able to do that: Code: cat mytest.txt | awk -F: '/myregex/ { print $2}' ... (6 Replies)
Discussion started by: usha rao
6 Replies

5. UNIX for Dummies Questions & Answers

One liner pattern search with awk/sed/grep

I have an array containing bunch of characters. I have to check this array for specific character and if "Not Found than" use a goto statement to go to USAGE set options = (A B C D E F) @ i = 0 while ($i <= ${#options}) if ($options != "F" || $options != "D") then goto USAGE endif @... (1 Reply)
Discussion started by: dixits
1 Replies

6. Shell Programming and Scripting

Perl: Pattern to remove words with less than 2 characters.

Hello. I've been thinking about how to go about this. I know I'm close but still does not work. I need to remove any word in that is not at least 2 characters long. I've removed all the non-alphabetic characters already (numbers included). Here's an example: my $string = "This string is a... (4 Replies)
Discussion started by: D2K
4 Replies

7. Shell Programming and Scripting

Awk-sed help : to remove first and last line with pattern match:

awk , sed Experts, I want to remove first and last line after pattern match "vg" : I am trying : # sed '1d;$d' works fine , but where the last line is not having vg entry it is deleting one line of data. - So it should check for the pattern vg if present , then it should delete the line ,... (5 Replies)
Discussion started by: rveri
5 Replies

8. Shell Programming and Scripting

Searching and printing the only pattern using awk,sed or perl

Hi All, i have an output of command vmstat as below : $ vmstat System configuration: lcpu=4 mem=5376MB ent=1.00 kthr memory page faults cpu ----- ----------- ------------------------ ------------ ----------------------- r b avm fre re pi... (10 Replies)
Discussion started by: omkar.jadhav
10 Replies

9. Shell Programming and Scripting

Precede and Append characters using sed/awk based on a pattern

I have an input file which is similar to what I have shown below. Pattern : Data followed by two blank lines followed by data again followed by two blank lines followed by data again etc.. The first three lines after every blank line combination(2 blank lines between data) should be... (2 Replies)
Discussion started by: bikerboy
2 Replies

10. UNIX for Beginners Questions & Answers

awk with sed to combine lines and remove specific odd # pattern from line

In the awk piped to sed below I am trying to format file by removing the odd xxxx_digits and whitespace after, then move the even xxxx_digit to the line above it and add a space between them. There may be multiple lines in file but they are in the same format. The Filename_ID line is the last line... (4 Replies)
Discussion started by: cmccabe
4 Replies
SYS(1)							       AFS Command Reference							    SYS(1)

NAME
sys - Reports the compile-time CPU/operating system type SYNOPSIS
sys DESCRIPTION
The sys command displays the string set at compile time that indicates the local machine's CPU/operating system (OS) type, conventionally called the sysname. This string is the default for the value stored in kernel memory. The Cache Manager substitutes this string for the @sys variable which can occur in AFS pathnames; the OpenAFS Quick Start Guide and OpenAFS Administration Guide explain how using @sys can simplify cell configuration. To set a new value in kernel memory, use the fs sysname command. To view the current value set in the kernel, use either fs sysname or livesys. CAUTIONS
You almost always want to use livesys rather than this command. The sys command displays a single value hard-coded at compile time. It does not query the Cache Manager for the current value and it does not report sysname lists. If you have changed the local system type with fs sysname, or if you run a version of sys compiled differently than the Cache Manager running on the system, the value returned will not match the behavior of the Cache Manager. The only reason to use sys is that livesys wasn't available in older versions of AFS. OUTPUT
The machine's system type appears as a text string: I<system_type> EXAMPLES
The following example shows the output produced on a Sun SPARCStation running Solaris 5.7: % sys sun4x_57 PRIVILEGE REQUIRED
None SEE ALSO
fs_sysname(1), livesys(1) The OpenAFS Quick Start Guides at <http://docs.openafs.org/>. The OpenAFS Administration Guide at <http://docs.openafs.org/AdminGuide/>. COPYRIGHT
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved. This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell. OpenAFS 2012-03-26 SYS(1)
All times are GMT -4. The time now is 10:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy