Awk print$0将我的文件的所有行打印到列的最后一个位置;我怎样才能开始打印?
我使用这个命令Awk print$0将我的文件的所有行打印到列的最后一个位置;我怎样才能开始打印?,awk,Awk,我使用这个命令 awk -F";" '{ print $0 "VVVVVVVV" $10 }' FILE3.csv 这张照片印得很好,但这张照片的顺序是这样的 VVVV;第10栏第1列;第2栏;第3栏:第4栏;第5栏……第10栏 我需要反向打印 column1;第2栏;第3栏:第4栏;第5栏……第10栏;VVVV;第10栏 但是不工作我怎么能做到这一点呢?你也可以这样做 $ awk -F";" '{ sub("\r",""); print $0 "VVVVVVVV" $10 }' file
awk -F";" '{ print $0 "VVVVVVVV" $10 }' FILE3.csv
这张照片印得很好,但这张照片的顺序是这样的
VVVV;第10栏<强>第1列;第2栏;第3栏:第4栏;第5栏……第10栏
我需要反向打印
column1;第2栏;第3栏:第4栏;第5栏……第10栏;VVVV;第10栏
但是不工作我怎么能做到这一点呢?你也可以这样做
$ 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
或
$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' RS="\r\n" file
$ dos2unix file
$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' file
以下是示例
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/tmp$ dos2unix file
dos2unix: converting file file to Unix format ...
# Now you can see ^M is not there
akshay@db-3325:/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
akshay@db-3325:/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
要么你做
$ 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
或
$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' RS="\r\n" file
$ dos2unix file
$ awk -F";" '{ print $0 "VVVVVVVV" $10 }' file
以下是示例
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/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
akshay@db-3325:/tmp$ dos2unix file
dos2unix: converting file file to Unix format ...
# Now you can see ^M is not there
akshay@db-3325:/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
akshay@db-3325:/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
原始文件是否来自Windows?这将是我能想到的唯一一件事,为什么顺序可能会改变。如果是这样,您需要在其上运行dos2unix,或者将RS更改为windows行的结尾。是的,来自windows OK将执行此操作;非常感谢是的,现在非常有效thankyou@VictorHernandez:您可以尝试使用cat-v Input_文件来检查是否有控制M字符,如果有,您可以通过tr-d'\r'