Visit Our UNIX and Linux User Community


Task


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Task
# 1  
Old 06-07-2011
Task

Hi experts,

I have a problem with the below shell task:
I need to modify the file creatin a paired row , per each row
which matches filter (e.g. number of nonempty columns = 5)

Output should look like this:
second row is original one from the input,
first row(red) is pairing row, it's almost the same except the changes(bold font).
Very important are the spaces between columns, they should remain the same as in input, so the fields start at the same position.

Thanks

INPUT
Code:
R#                   asd1X892                X892             1TESTC             :A
R#                   qwe1Y892                Y892             1TESTC             :A

OUTPUT
Code:
R#                   asdX892                                  0TESTC             :A
R#                   qweY892                                  0TESTC             :A
R#                   asd1X892                X892             1TESTC             :A
R#                   qwe1Y892                Y892             1TESTC             :A


Last edited by hernand; 06-07-2011 at 03:14 PM..
# 2  
Old 06-07-2011
Try:
Code:
 perl -0ne '$x=$_;s/^([^ ]+ +AAA)1([^ ]+)( +)[^ ]+( +)1/$1$2$3     ${4}0/mg;print $_,$x' file

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 06-07-2011
Hi,

Thanks code works for my sample file, however real file is more complicated.
Below is the original input, I need to duplicit every 2 rows which have one more additional column,
so task is to identify rows which have number of columns=11,then duplicit these 2 rows giving output beneath.
New rows should be above the old ones, plus little change has to be made(in blue font).

Thanks a lot


INPUT
Code:
H:   EURS890             00440000000069.110100000963    DE0008032004   2CBKd   20110607-07:50:59BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURB890             00440000000069.110100000968    DE0008032004   1CBKd   20110607-07:50:59BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURB891             00440000000064.045100000972    DE0006231004   1IFXd   20110607-08:03:22BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURS891             00440000000064.045100000973    DE0006231004   2IFXd   20110607-08:03:22BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURS1892  S892      10440000000000.003000000450    FR0000130007   2ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB1892  B892      10440000000000.003000000450    FR0000130007   1ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #   
H:   EURS893             00440000000050.300100000986    FR0000120628   2CSp    20110607-08:27:31TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB893             00440000000050.300100000987    FR0000120628   1CSp    20110607-08:27:31TRADETES   PA TRADETES    TESTCLRXX            #

OUTPUT
Code:
H:   EURS890             00440000000069.110100000963    DE0008032004   2CBKd   20110607-07:50:59BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURB890             00440000000069.110100000968    DE0008032004   1CBKd   20110607-07:50:59BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURB891             00440000000064.045100000972    DE0006231004   1IFXd   20110607-08:03:22BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURS891             00440000000064.045100000973    DE0006231004   2IFXd   20110607-08:03:22BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURS892             00440000000000.003000000450    FR0000130007   2ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB892             00440000000000.003000000450    FR0000130007   1ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #   
H:   EURS1892  S892      10440000000000.003000000450    FR0000130007   2ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB1892  B892      10440000000000.003000000450    FR0000130007   1ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #   
H:   EURS893             00440000000050.300100000986    FR0000120628   2CSp    20110607-08:27:31TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB893             00440000000050.300100000987    FR0000120628   1CSp    20110607-08:27:31TRADETES   PA TRADETES    TESTCLRXX            #


Last edited by hernand; 06-07-2011 at 03:46 PM..
# 4  
Old 06-07-2011
Try:
Code:
perl -0ne '$x=$_;s/^([^ ]+ +AAA)1([^ ]+)( +)[^ ]+( +)1([^ ]+ +[^ ]+$)/$1$2$3     ${4}0$5/mg;print $_,$x' file

This User Gave Thanks to bartus11 For This Post:
# 5  
Old 06-07-2011
Thanks bartus,

I've updated the previous post a little bit, please take a look
Thanks a lot
# 6  
Old 06-07-2011
Can the output look like this?
Code:
H:   EURS890             00440000000069.110100000963    DE0008032004   2CBKd   20110607-07:50:59BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURB890             00440000000069.110100000968    DE0008032004   1CBKd   20110607-07:50:59BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURB891             00440000000064.045100000972    DE0006231004   1IFXd   20110607-08:03:22BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURS891             00440000000064.045100000973    DE0006231004   2IFXd   20110607-08:03:22BNABFRPP   DE BNABFRPP    PARBFRPP             #
H:   EURS892             00440000000000.003000000450    FR0000130007   2ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURS1892  S892      10440000000000.003000000450    FR0000130007   2ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB892             00440000000000.003000000450    FR0000130007   1ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB1892  B892      10440000000000.003000000450    FR0000130007   1ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURS893             00440000000050.300100000986    FR0000120628   2CSp    20110607-08:27:31TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB893             00440000000050.300100000987    FR0000120628   1CSp    20110607-08:27:31TRADETES   PA TRADETES    TESTCLRXX            #

So new line is directly above original line?
This User Gave Thanks to bartus11 For This Post:
# 7  
Old 06-07-2011
Output should look like this, hope it's not the obstacle
Code:
H:   EURS892             00440000000000.003000000450    FR0000130007   2ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB892             00440000000000.003000000450    FR0000130007   1ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #   
H:   EURS1892  S892      10440000000000.003000000450    FR0000130007   2ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #
H:   EURB1892  B892      10440000000000.003000000450    FR0000130007   1ALUp   20110607-08:34:25TRADETES   PA TRADETES    TESTCLRXX            #


Previous Thread | Next Thread
Test Your Knowledge in Computers #596
Difficulty: Hard
For loops in C use the familiar syntax of placing the initialization, continuation condition, and interpretation on the same line as the keyword for.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Automate a task

Dear All, I am relatively new to UNIX and wanted to accomplish a simple task which should be automated. That's why I need your help. I shall briefly describe what I want. Basically, there is a process (X) (related to a particular software which I am using in my system) which automatically... (5 Replies)
Discussion started by: Samiran Dam
5 Replies

2. Homework & Coursework Questions

[HELP] Easy task

I have a simple task for my school work. I'm new with unix, so i need help. I need to write a scenario. Task is. From created txt file read first 3 words and create a 3 catalogs with those 3 words. 2 of those new catalogs should be transferred to other directory. If someone could help me just... (1 Reply)
Discussion started by: justynykas
1 Replies

3. Shell Programming and Scripting

task

Hi all, I'm newbie and stuck here. Thanks for any help. Input(txt file) a b X c d Y e f Z g h W Requested output: a b X Y c d Y X e f Z W g h W Z Please use code tags when posting data and code samples! (10 Replies)
Discussion started by: hernand
10 Replies

4. Shell Programming and Scripting

last task for my script

hi, infile- create table salary ( occupation_code char(40), earnings decimal(10,2), occ_yearend integer ); outfile- salary:create table salary salary:( occupation_code char(40), salary: earnings decimal(10,2), salary: occ_yearend integer salary:); Thanks. (4 Replies)
Discussion started by: dvah
4 Replies

5. Shell Programming and Scripting

Need a help to automate a task

I need to automate a manual task using shell scripting. The scenario is like :- #!/usr/bin/sh echo "please enter the name of the lab server to test ..." read s ssh $s This is peace of the script which will allow me to login to another server using "ssh". I have a conf file which is having... (4 Replies)
Discussion started by: Renjesh
4 Replies

6. Shell Programming and Scripting

Parse an XML task list to create each task.xml file

I have an task definition listing xml file that contains a list of tasks such as <TASKLIST <TASK definition="Completion date" id="Taskname1" Some other <CODE name="Code12" <Parameter pname="Dog" input="5.6" units="feet" etc /Parameter> <Parameter... (3 Replies)
Discussion started by: MissI
3 Replies

7. Shell Programming and Scripting

Need help with a manual task

I have an ASCII file that I receive on a monthly bases that is fixed length. I break the file into separate files based on a 5 character numerical sequence. I have 20 different sequences I have to find. the input file looks something like this xy-ins 2008yuthnrlsinrthsntwilgrha33260001... (4 Replies)
Discussion started by: jcalisi
4 Replies

8. Shell Programming and Scripting

comment and Uncomment single task out of multiple task

I have a file contains TASK gsnmpproxy { CommandLine = $SMCHOME/bin/gsnmpProxy.exe } TASK gsnmpdbgui { CommandLine = $SMCHOME/bin/gsnmpdbgui.exe I would like to comment and than uncomment specific task eg TASK gsnmpproxy Pls suggest how to do in shell script (9 Replies)
Discussion started by: madhusmita
9 Replies

9. UNIX for Dummies Questions & Answers

process vs task

Hi, I am new to this forum and unix too. I have just started learning unix. As I was going through the first chapter, I read that unix is multitasking, multiprogramming, multiprocessing and multiuser OS. My question is: Is there any difference between a TASK and a PROCESS. How are PROCESS... (2 Replies)
Discussion started by: hana
2 Replies

Featured Tech Videos