Цель
Я пытаюсь разбить дату, показанную в поле 2, на переменную «год и месяц», которые затем печатаются обратно в мой файл как 2 новых поля в конце. для l oop, поскольку я делаю много файлов, которые в конце будут cat'd.
Issue
AWK печатает поле 3 для одной из переменных и пустое поле для другого в конце файла.
file - test.tsv
client 2020-03-15 platform 3096431 2686357 0.868 2544716 0.8220000000000001 2509205 0.8100000000000001 2046915 0.6609999999999999 0.189 0.053 0.0526 0 0.0001 0 0.013 0.009599999999999999 0 0.0031 0 0 0.0005999999999999999 0.37 0.0757 0 0.0365 0.2326 0.025 1238347 0.494 0.494 1270858 0.507 0 0 1 0.302 33 202.5 1270864 0.507 157387 0.063 357414 0.142 723540 0.288
Код
##note the tabs in the cut command are correct in my code but might end up as spaces in the post
for f4 in $(find *.tsv);do
name=$(echo $f4 | sed -Ee 's/-filename.tsv//')
month=$(cat $f4 | cut -d " " -f 2 | awk -F"-" -v OFS='-' '{print $2}')
year=$(cat $f4 | cut -d " " -f 2 | awk -F"-" -v OFS='-' '{print $1}')
awk -v month="$month" -v year="$year" -F"\t" -v OFS='\t' '{print $0, $month, $year}' $f4 > $name-dates.tsv
mv $f4 tsv
done
Токовый выход
client 2020-03-15 platform 3096431 2686357 0.868 2544716 0.8220000000000001 2509205 0.8100000000000001 2046915 0.6609999999999999 0.189 0.053 0.0526 0 0.0001 0 0.013 0.009599999999999999 0 0.0031 0 0 0.0005999999999999999 0.37 0.0757 0 0.0365 0.2326 0.025 1238347 0.494 0.494 1270858 0.507 0 0 1 0.302 33 202.5 1270864 0.507 157387 0.063 357414 0.142 723540 0.288 platform
Требуемый вывод
client 2020-03-15 platform 3096431 2686357 0.868 2544716 0.8220000000000001 2509205 0.8100000000000001 2046915 0.6609999999999999 0.189 0.053 0.0526 0 0.0001 0 0.013 0.009599999999999999 0 0.0031 0 0 0.0005999999999999999 0.37 0.0757 0 0.0365 0.2326 0.025 1238347 0.494 0.494 1270858 0.507 0 0 1 0.302 33 202.5 1270864 0.507 157387 0.063 357414 0.142 723540 0.288 03 2020
То, что я пробовал
Множество гуглов и множество доработок для сценария, но мне кажется, что я не могу сделать это правильно. по моим переменным "месяц" и "год" я записываю правильный ввод, но что-то в команде awk не передает его правильно. Любое руководство будет с благодарностью.