Adding text to end of line using awk -
i'll lay out. input test.bat files looks like:
awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame001.txt awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame002.txt ... awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame405.txt
what want in end is:
awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame001.txt airtrac_data_frame001.tst awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame002.txt airtrac_data_frame001.tst ... awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame405.txt airtrac_data_frame001.tst
this awk command takes file in , prints original nicely, saving file name appended.
cmd:
awk '{temp = $7} {printf("%s\n", $0)}' mactounix_convert_line_return.bat
output:
**awk '{temp = $7} {printf("%s\n", $0)}' mactounix_convert_line_return.bat**
the problem when try append captured string end of line
cmd:
awk '{temp = $7} {printf "%s %s\n", $0, temp}' mactounix_convert_line_return.bat
output:
**airtrac_data_frame405.txtrint $0;}' airtrac_data_frame405.txt**
it appears captured text ($7)is overwriting original string.
any appreciated.
not sure if understood requirement correctly based on input , output can try -
awk '{ a=$0; sub (/txt$/,"tst",$nf); print a,$nf}' file [jaypal:~/temp] cat file awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame001.txt awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame002.txt awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame405.txt [jaypal:~/temp] awk '{ a=$0; sub (/txt$/,"tst",$nf); print a,$nf}' file awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame001.txt airtrac_data_frame001.tst awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame002.txt airtrac_data_frame002.tst awk '{ gsub("\r", "\n"); print $0;}' airtrac_data_frame405.txt airtrac_data_frame405.tst
if intend redirect output new tst
files you'll need >
(re-direction) operator too. can add in between print statements.
awk '{ a=$0; sub (/txt$/,"tst",$nf); print a" > "$nf}' file
Comments
Post a Comment