使用 awk 打印第一个和最后一个字段
Using awk to print first and last fields
我打印每行的第一个和最后一个字段的 awk 脚本没有按我预期的那样工作。它只为最后一行打印最后一个字段。我该如何解决这个问题?
c:\awk>type file_lists.t01
dgo_files.txt date_frame_full.f90 xdtff_good.f90
dtd_files.txt date_frame_full.f90 xread_date_time_frame_stream_dir.f90
xem_files.txt kind.f90 foo.f90
c:\awk>gawk '{ print " " $NF }' file_lists.t01
dgo_files.txt
dtd_files.txt
xem_files.txt foo.f90
您的文件似乎使用了 carriage returns。我建议使用 GNU awk:
gawk 'BEGIN{ RS="\n|\r\n" }{ print " " $NF }' file_lists.t01
参见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR
我打印每行的第一个和最后一个字段的 awk 脚本没有按我预期的那样工作。它只为最后一行打印最后一个字段。我该如何解决这个问题?
c:\awk>type file_lists.t01
dgo_files.txt date_frame_full.f90 xdtff_good.f90
dtd_files.txt date_frame_full.f90 xread_date_time_frame_stream_dir.f90
xem_files.txt kind.f90 foo.f90
c:\awk>gawk '{ print " " $NF }' file_lists.t01
dgo_files.txt
dtd_files.txt
xem_files.txt foo.f90
您的文件似乎使用了 carriage returns。我建议使用 GNU awk:
gawk 'BEGIN{ RS="\n|\r\n" }{ print " " $NF }' file_lists.t01
参见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR