Row alignment


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Row alignment
# 1  
Old 07-30-2014
Row alignment

Code:
*1  flash  read  test(*do_test1*)  PASS
*2 xxxxxxxxxxx flash write test(*do_test2) FAIL ------>xxxxx

Code:
*1  flash  read  test(*do_test1*)          PASS
*2 xxxxxxxxxxx flash write test(*do_test2) FAIL ------>xxxxx

I want pass and Fail to be aligned

if each line uses printf or echo to print, is there anyway to let them align?

Last edited by Scrutinizer; 08-23-2014 at 08:47 AM.. Reason: spelling
# 2  
Old 07-31-2014
Here is a solution but I'm sure there is an easier way to do this I missed:

Code:
awk '
  FNR==NR{ m=index($0, "FAIL"); max=m>max?m:max; next }
  /PASS/ {
      i=index($0, "PASS");
      if(i>max) $0=substr($0,1,max-1) substr($0,i)
      else
        $0=sprintf("%s%"max-i"s%s",substr($0,1,i-1), "", substr($0,i))
  }1' infile infile


Supports this type of infile:

Code:
1  flash  read  test(*do_test1*)       PASS
1  flash  read  test(*do_test1*)                     PASS
1  flash  read  test(*do_test1*)           PASS
*2 xxxxxxxxxxx flash write test(*do_test2) FAIL ------>xxxxx


Last edited by Chubler_XL; 07-31-2014 at 01:01 AM..
# 3  
Old 07-31-2014
Code:
awk '/ PASS/{i=index($0, " PASS")}
  / FAIL/{i=index($0, " FAIL")}
  {a[++n]=substr($0, 0, i-1);
  b[n]=substr($0, i);
  if(max < i-1) max = i-1}
  END {for(i=1; i<=n; i++) printf "%-*s%s\n", max, a[i], b[i]}' file


Last edited by SriniShoo; 07-31-2014 at 01:20 AM..
This User Gave Thanks to SriniShoo For This Post:
# 4  
Old 07-31-2014
Chubler_XL made a reasonable guess at what may be wanted. The specification leaves a lot to be desired:
  1. Are there always only two lines?
  2. Is the FAIL always on the 2nd line? Or, if there can be more than two lines, always on the last line?
  3. Is the FAIL always further to the right on a line than all occurrences of PASS?
  4. Will there every be any text following PASS?
  5. Will there ever be more than one FAIL line?
  6. How big can the file we're processing be?
  7. Will there always be a FAIL line?

Last edited by Don Cragun; 07-31-2014 at 01:34 AM.. Reason: Add another question.
# 5  
Old 08-22-2014
if each line uses printf or echo to print, is there anyway to let them align?

Last edited by Scrutinizer; 08-23-2014 at 08:45 AM.. Reason: Spelling
# 6  
Old 08-22-2014
Quote:
Originally Posted by yanglei_fage
if the each line use printf or echo to print, is there anyway to let them algin?
Yes. Did you look at Chubler_XL's or SriniShoo's printf commands?

If their code didn't work, maybe we could try to fix it if you would answer the questions I asked three weeks ago...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Keep only the closet match of timestamped row (include headers) from file1 to precede file2 row/s

This is a question that is related to one I had last August when I was trying to sort/merge two files by millsecond time column (in this case column 6). The script (below) that helped me last august by RudiC solved the puzzle of sorting/merging two files by time, except it gets lost when the... (0 Replies)
Discussion started by: aachave1
0 Replies

2. Shell Programming and Scripting

Splitting single row into multiple rows based on for every 10 digits of last field of the row

Hi ALL, We have requirement in a file, i have multiple rows. Example below: Input file rows 01,1,102319,0,0,70,26,U,1,331,000000113200000011920000001212 01,1,102319,0,1,80,20,U,1,241,00000059420000006021 I need my output file should be as mentioned below. Last field should split for... (4 Replies)
Discussion started by: kotra
4 Replies

3. UNIX for Beginners Questions & Answers

Keep only the closet match of timestamped row (include headers) from file1 to precede file2 row/s

My original files are like this below and I distinguish them from the AP_ID (file1 has 572 and file2 has 544). Also, the header on file1 has “G_” pre-pended. NOTE: these are only snippets of very large files and much of the data is not present here. Original File 1: ... (36 Replies)
Discussion started by: aachave1
36 Replies

4. Shell Programming and Scripting

Add Row from First Row (Split Row)

HI Guys, I have Below Input :- RepigA_hteis522 ReptCfiEtrBsCll_aofe MSL04_MSL2_A25_1A 0 9 MSL04_MSL2_A25_1B 0 9 MSL04_MSL2_A25_1C 0 9 RepigA ReptCfiEtrBsCll hteis522 aofe MSL04_MSL2_A25_1A 0 9 MSL04_MSL2_A25_1B 0 9 MSL04_MSL2_A25_1C 0 9 Split Data in two first row... (2 Replies)
Discussion started by: pareshkp
2 Replies

5. Shell Programming and Scripting

Get row number from file1 and print that row of file2

Hi. How can we print those rows of file2 which are mentioned in file1. first character of file1 is a row number.. for eg file1 1:abc 3:ghi 6:pqr file2 a abc b def c ghi d jkl e mno f pqr ... (6 Replies)
Discussion started by: Abhiraj Singh
6 Replies

6. Emergency UNIX and Linux Support

[Solved] Mysql - Take data from row and copy it to another row

Sorry if I repost my question in this section, but I'm really in a hurry since I have to finish my work... :( Dear community, I have a table with two rows like: Row1 Row2 ======= ======= 7,3 text 1 1,3 text 2 1,2,3 blabla What i need to do is add/copy... (2 Replies)
Discussion started by: Lord Spectre
2 Replies

7. Shell Programming and Scripting

In php, Moving a new row to another table and deleting old row

Hi, I already succeed moving a new row to another table if the field from new row doesn't have the first word that I categorized (like: IRC blablabla, PTM blablabla, ADM blablabla, BS blablabla). But it can't delete the old row. Please help me with the script. my php script: INSERT INTO... (2 Replies)
Discussion started by: jazzyzha
2 Replies

8. Shell Programming and Scripting

Subtracting each row from the first row in a single column file using awk

Hi Friends, I have a single column data like below. 1 2 3 4 5 I need the output like below. 0 1 2 3 4 where each row (including first row) subtracting from first row and the result should print below like the way shown in output file. Thanks Sid (11 Replies)
Discussion started by: ks_reddy
11 Replies

9. UNIX for Dummies Questions & Answers

Shell Script: Traverse Database Table Row by Row

Hello Everyone, My issue is that I want to traverse a database table row by row and do some action on the value retrieved in each row. I have gone through a lot of shell script questions/posts. I could find row by row traversal of a file but not a database table. Please help. Thanks &... (5 Replies)
Discussion started by: ahsan.asghar
5 Replies

10. Shell Programming and Scripting

Changing the column for a row in a text file and adding another row

Hi, I want to write a shell script which increments a particular column in a row from a text file and then adds another row below the current row with the incremented value . For Eg . if the input file has a row : abc xyz lmn 89 lm nk o p I would like the script to create something like... (9 Replies)
Discussion started by: aYankeeFan
9 Replies
Login or Register to Ask a Question