Swap of fields dynamically


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Swap of fields dynamically
# 1  
Old 10-22-2012
Error Swap of fields dynamically

Dear Friends,

I have file a.txt

Code:
1|2|3|4|5|6|7|8
a|b|c|d|e|f|g|h

i am using the below code to swap the fields in file
Code:
awk -F\| '{print $5,$1,$2,$3,$4,$6,$7,$8}' OFS=\| a.txt > output.txt

output.txt
Code:
5|1|2|3|4|6|7|8
e|a|b|c|d|f|g|h

The above command is working fine. I am trying make it dynamic for swpping the field.I am struck where and how to start .My inputs should be the which column should come in first field and rest moving other side .Please find example for the above file

Code:
 
Swapfields.sh a.txt 5 8 
5= First field in putputfile
8=number of fields.

Plz help.
# 2  
Old 10-22-2012
Hi

Code:
$ awk -v x=5 '{printf $x; for(i=1;i<=NF;i++)if(i!=x)printf "|%s",$i;print "";}' FS="|"  file
5|1|2|3|4|6|7|8
e|a|b|c|d|f|g|h

Guru.
This User Gave Thanks to guruprasadpr For This Post:
# 3  
Old 10-22-2012
Without any validations:
Code:
awk -F\| -v first=5 -v num=8 '{
printf "%s", $first
for(i=1;i<=num;i++)
 if(i!=first)
  printf "|%s",$i
printf "\n"
}' file

This User Gave Thanks to elixir_sinari For This Post:
# 4  
Old 10-22-2012
This is my script. name is test.sh

Code:
$ cat test.sh
file=$1 #file name
FIR=$2 # first field to print
FILD=$3 # Number of fields

awk -v first="$FIR" -v Field="$FILD" -F "|" '{ s=$first; for(i=1;i<=Field;i++){if(i != first){s=s"|"$i}}{print s}}' $file

Code:
$ sh test.sh file 6 7
6|1|2|3|4|5|7
f|a|b|c|d|e|g

$ sh test.sh file 5 8
5|1|2|3|4|6|7|8
e|a|b|c|d|f|g|h

$ cat file
1|2|3|4|5|6|7|8
a|b|c|d|e|f|g|h

This User Gave Thanks to pamu For This Post:
# 5  
Old 10-22-2012
@Guru. Thanks for the quick response. it is working as expected. I have used the same in my script . Smilie Smilie

---------- Post updated at 05:18 PM ---------- Previous update was at 05:12 PM ----------

@elixir,Pamu. Thanks for the reply. Your solution works perfect Smilie Smilie Need to learn more from You all and this forum makes me to learn and share my knowledge Smilie Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Is there a UNIX command that can compare fields of files with differing number of fields?

Hi, Below are the sample files. x.txt is from an Excel file that is a list of users from Windows and y.txt is a list of database account. $ head -500 x.txt y.txt ==> x.txt <== TEST01 APP_USER_PROFILE USER03 APP_USER_PROFILE TEST02 APP_USER_EXP_PROFILE TEST04 APP_USER_PROFILE USER01 ... (3 Replies)
Discussion started by: newbie_01
3 Replies

2. Shell Programming and Scripting

awk sort based on difference of fields and print all fields

Hi I have a file as below <field1> <field2> <field3> ... <field_num1> <field_num2> Trying to sort based on difference of <field_num1> and <field_num2> in desceding order and print all fields. I tried this and it doesn't sort on the difference field .. Appreciate your help. cat... (9 Replies)
Discussion started by: newstart
9 Replies

3. Solaris

Explain the output of swap -s and swap -l

Hi Solaris Folks :), I need to calculate the swap usage on solaris server, please let me understand the output of below swap -s and swap -l commands. $swap -s total: 1774912k bytes allocated + 240616k reserved = 2015528k used, 14542512k available $swap -l swapfile dev swaplo... (6 Replies)
Discussion started by: seenuvasan1985
6 Replies

4. Shell Programming and Scripting

How to print 1st field and last 2 fields together and the rest of the fields after it using awk?

Hi experts, I need to print the first field first then last two fields should come next and then i need to print rest of the fields. Input : a1,abc,jsd,fhf,fkk,b1,b2 a2,acb,dfg,ghj,b3,c4 a3,djf,wdjg,fkg,dff,ggk,d4,d5 Expected output: a1,b1,b2,abc,jsd,fhf,fkk... (6 Replies)
Discussion started by: 100bees
6 Replies

5. Programming

Dynamically added text fields passed to PHP script

If I am posting this to the wrong section please move it somewhere it fits. I apologize if this is not the correct section. I have a site where I want to have form that in a "Visitor name" section to be able to add fieldets as needed. I think I have that worked out. So the below code is the... (4 Replies)
Discussion started by: GroveTuckey
4 Replies

6. HP-UX

Swap device file and swap sapce

Hi I have an integrity machine rx7620 and rx8640 running hp-ux 11.31. I'm planning to fine tune the system: - I would like to know when does the memory swap space spill over to the device swap space? - And how much % of memory swap utilization should be specified (swap space device... (6 Replies)
Discussion started by: lamoul
6 Replies

7. Red Hat

swap not defined as swap

free -m : 1023 total swap space created default partition /dev/sdb1 50M using fdisk. i did write the changes. #mkswap /dev/sdb1 #swapon /dev/sdb1 free -m : 1078 total swap space this shows that the swap is on Question : i did not change the type LINUX SWAP (82) in fdisk. so why is... (5 Replies)
Discussion started by: dplinux
5 Replies

8. Shell Programming and Scripting

awk sed cut? to rearrange random number of fields into 3 fields

I'm working on formatting some attendance data to meet a vendors requirements to upload to their system. With some help on the forums here, I have the data close. But they've since changed what they want. The vendor wants me to submit three fields to them. Field 1 is the studentid field,... (4 Replies)
Discussion started by: axo959
4 Replies

9. UNIX for Dummies Questions & Answers

swap fields in a file

I have a file (tmp.out) with contents delimited by '|': 1|d|2|rt| 3|sfd|4|sgf| 5|sg|6|gtr| 7|s|8|sf| I want to write only the 1st and 3rd columns to another file, but they should be swapped with each other: 2|1 4|3 6|5 8|7 Here is what I have so far: ... (2 Replies)
Discussion started by: ChicagoBlues
2 Replies

10. Solaris

Swap config - Mirror swap or not?

Hello and thanks in advance. I have a Sun box with raid 1 on the O/S disks using solaris svm. I want to unmirror my swap partition, and add the slice on the second disk as an additional swap device. This would give me twice as much swap space. I have been warned not to do this by some... (3 Replies)
Discussion started by: BG_JrAdmin
3 Replies
Login or Register to Ask a Question