2017-02-18 11 views
1

Я использую эту команду

awk -F";" '{ print $0 "VVVVVVVV" $10 }' FILE3.csv 

Эта печать также, но это печать в таком порядке

VVVVVVVV; column10; column1; column2; колонка3: column4; column5 ..... column10

мне нужно напечатать в обратном column1; column2; колонка3: column4; column5 ..... column10; VVVVVVVV; column10

но не работает, как я могу это сделать?

+1

Является ли исходный файл из Windows? Это единственное, о чем я могу думать, почему порядок может измениться. Если это так, вам нужно либо запустить dos2unix над ним, чтобы изменить RS, чтобы окончить линию Windows. – grail

+0

да из окон –

+0

ok сделает это; очень спасибо –

ответ

0

Либо вы

$ awk -F";" '{ sub("\r",""); print $0 "VVVVVVVV" $10 }' file 

ИЛИ

$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' RS="\r\n" file 

ИЛИ

$ dos2unix file 
$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' file 

Здесь Пример

[email protected]:/tmp$ cat file 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10 

# See at the end there is ^M char 
[email protected]:/tmp$ cat -A file 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10^M$ 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10^M$ 

# Using awk without sub() - This is what you got 
[email protected]:/tmp$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' file 
VVVVVVVVcolumn10column3;column4;column5;column6;column7;column8;column9;column10 
VVVVVVVVcolumn10column3;column4;column5;column6;column7;column8;column9;column10 

# Using awk with sub() - This is what you wanted to get 
[email protected]:/tmp$ awk -F";" '{ sub("\r",""); print $0 "VVVVVVVV" $10 }' file 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10VVVVVVVVcolumn10 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10VVVVVVVVcolumn10 

[email protected]:/tmp$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' RS="\r\n" file 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10VVVVVVVVcolumn10 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10VVVVVVVVcolumn10 

# dos2unix 
[email protected]:/tmp$ dos2unix file 
dos2unix: converting file file to Unix format ... 

# Now you can see ^M is not there 
[email protected]:/tmp$ cat -A file 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10$ 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10$ 

# Now your awk 
[email protected]:/tmp$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' file 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10VVVVVVVVcolumn10 
column1;column2;column3;column4;column5;column6;column7;column8;column9;column10VVVVVVVVcolumn10