Sponsored Content
Top Forums Shell Programming and Scripting change the format of a giving file ( a bit challenge) Thank you Post 302148861 by netbanker on Tuesday 4th of December 2007 12:50:23 AM
Old 12-04-2007
Computer

Quote:
Originally Posted by Smiling Dragon
That's a pretty interesting one!
perl looks like the most appropriate choice for this:
Code:
#!/usr/bin/perl -w
while (<>) {
  if (/^([^\d\.]*)(\d*)([^\d.]*)\.([^\.]+)$/) {
    if ($1) { print "$1" }
    if ($2) {
      $val=$2+1;
      print $val;
      $suffix="";
    } else {
      $suffix="2";
    }
    if ($3) { print "$3" }
    if ($suffix) { print "$suffix" }
    print ".$4";
  } else {
    print "# Could not parse the following line:\n";
    print "$_";
  }
}



here is a test result:

stzhaoSmiliets/7:sambar:dman > cutstring.pl test.txt
12rgm.log
mgr2.dbf
tool2.dbf
usr2.dbf
wow20.dbf
wow3wow.dbf
# Could not parse the following line:
11number12.dbf
# Could not parse the following line:
char14between13.dbf
# Could not parse the following line:

# Could not parse the following line:


Sorry, adding more test condition, if two or more numbers appearing in the string, can we increase the last number?

like:
11number12.dbf --> 11number13.dbf
char14between13.dbf --> char14between14.dbf
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Change format to file II

hi all... i have a big problem, and i hope someone can help me... i have a flat file, and its columns are separated by comma (CSV), something like this: 78 , 204R180 , 90/100 , 200001 , 12 ,200002 ,13 ..... 78 , 204R180 , 90/100 , 200001 , 29 ,200002 ,30 ..... 78 , 204R180 , 90/100 ,... (0 Replies)
Discussion started by: DebianJ
0 Replies

2. HP-UX

Change 32 bit to 64 bit Kernel

Hi, I'm using HPUX 11.11 on Vizualize B180L our productive machines have 64 bit kernel # file vmunix vmunix: ELF-64 executable object file - PA-RISC 2.0 (LP64) I got one test system, which should have the same HW (i was told it is the same HW) hpuxtest:/stand-->file... (3 Replies)
Discussion started by: funksen
3 Replies

3. Shell Programming and Scripting

Change file format

Hi I have a file in the following format I have to convert this into four files , in the format as below. Data under Process SFA SUccess Section gets into file Named SFA_SUCCESS inthe following format ctr1,120 ctr2,1785 Data under Process SFA FAil gets into file Named SFA_Fail inthe... (2 Replies)
Discussion started by: sapics
2 Replies

4. Shell Programming and Scripting

Giving format to a file

hi all, i have a big problem and i don't know what to do. This is the thing: i have a flat file with 26 fields, which are separated by ';' by example, i have this: Peter;Smith;2005;200508; ......... if the lengths of the fields are: field 1: Alphanumeric - field 2: Alphanumeric - field... (4 Replies)
Discussion started by: DebianJ
4 Replies

5. Shell Programming and Scripting

To Change the file format Pls Help!!!

Hi All, I have a file like john::208:johnson john::208:mery john::208:test admin:*:1:johnson admin:*:1:test and wanna convert this as john::208:johnson,mery,test admin:*:1:johnson,test please help me to create a script for this thanks in advance John (4 Replies)
Discussion started by: johnsonpk
4 Replies

6. Shell Programming and Scripting

switch format between 64 bit double and 64 bit integer

In order to perform some arithmetical operations on 64 bit double I need to transform of the binary representation of a 64 bit double to a 64 bit integer do the operations and then transform back to 64 bit double. I understand bash and bc doesn't allow to do that. I think my only tool left is... (2 Replies)
Discussion started by: Zephyr
2 Replies

7. Shell Programming and Scripting

How to change date format in file

Hello! I have a textfile that look like this: "83d1:46:2b";"20091008190000";"Rögle BK - Skellefteå";"Swedish" "d4c:46:21";"20091008190000";"Södertälje - Brynäs";"Swedish" "d4b:46:2";"20091008190000";"HV 71 - Färjestad";"Swedish" "838:46:b";"20091010160000";"Skellefteå - HV 71";"Swedish"... (2 Replies)
Discussion started by: condmaster
2 Replies

8. Shell Programming and Scripting

howto change format of file?

Hi I have a file with this inside: How can I change it to: thanks a lot regards Israel. (3 Replies)
Discussion started by: iga3725
3 Replies

9. Shell Programming and Scripting

Challenge to change file names

Hi, How can I change following file name in a bash script? From file names: myfile-module-1.0-3.0.el6.x86_64.package To file names: myfile-module1_0-1.0-3.0.el6.x86_64.package ^ ^ ^ ^ ^ ^ ^ ^ Basically, the digit 1.0 is a version number, the digit 3.0 is... (11 Replies)
Discussion started by: hce
11 Replies

10. Shell Programming and Scripting

Change the file format

gpio_rw = gpiochip162 audio_aplay = HDMI_0 audio_aplay = HDMI_1 audio_aplay = HDMI_2 graphic_xrandr_show = USB1 graphic_xrandr_show = USB2 graphic_xrandr_show = USB3 graphic_change_resolution = eDP1 gpio_rw = "gpiochip162" audio_aplay = "HDMI_0 HDMI_1 HDMI_2" graphic_xrandr_show =... (3 Replies)
Discussion started by: yanglei_fage
3 Replies
DBF_DUMP(1p)						User Contributed Perl Documentation					      DBF_DUMP(1p)

NAME
dbf_dump - Dump the record of the dbf file FORMAT
dbf_dump [options] files where options are --rs output record separator (default newline) --fs output field separator (default colon) --fields comma separated list of fields to print (default all) --undef string to print for NULL values (default empty) --memofile specifies unstandard name of attached memo file --memosep separator for dBase III dbt's (default x1ax1a) --nomemo do not try to read the memo (dbt/fpt) file --info print info about the file and fields with additional --SQL parameter, outputs the SQL create table --version print version of the XBase library --table output in nice table format (only available when Data::ShowTable is installed, overrides rs and fs) SYNOPSIS
dbf_dump -fields id,msg table.dbf dbf_dump -fs=' : ' table dbf_dump --nomemo file.dbf ssh user@host 'cat file.dbf.gz' | gunzip - | dbf_dump - DESCRIPTION
Dbf_dump prints to standard output the content of dbf files listed. By default, it prints all fields, separated by colons, one record on a line. The output record and column separators can be changed by switches on the command line. You can also ask only for some fields to be printed. The content of associated memo files (dbf, fpt) is printed for memo fields, unless you use the "--nomemo" option. You can specify reading the standard input by putting dash (-) instead of file name. AVAILABLE FROM
http://www.adelton.com/perl/DBD-XBase/ AUTHOR
(c) 1998--2011 Jan Pazdziora. SEE ALSO
perl(1); XBase(3pm); index_dump(1p) perl v5.12.4 2011-08-31 DBF_DUMP(1p)
All times are GMT -4. The time now is 03:32 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy