Step 1: Backup the flights.csv cp flights.csv flights.org Step 2: Copy new data extracted from the original file cp monthly/2022-01.csv . Step 3: Remove ^M by pressing Ctrl+v + Ctrl+m sed -i 's/^M$//' 2022-01.csv Step 3: Remove Time from FL_DATE attributes (2022) sed -i 's/ 12:00:00 AM//' flight_2022.csv Step 4: Remove the header sed -i 1d 2022-01.csv Step 5: Append the flights data with the new month data cat 2022-01.csv >> flights.csv SED REFERENCE https://www.commandlinefu.com/commands/view/3802/to-print-a-specific-line-from-a-file Remove , at the end of every line ================================= sed 's/[,]$//' flights2016.csv > 2016.csv & sed 's/[,]$//' flights2017.csv > 2017.csv & sed 's/[,]$//' flights2018.csv > 2018.csv & sed 's/[,]$//' flights2019.csv > 2019.csv & sed 's/[,]$//' flights2020.csv > 2020.csv & sed 's/[,]$//' flights2021.csv > 2021.csv & CONVERT OLD DATA TO NEW FORMAT ============================== 1. Convert DATE FORMAT 2022-01-15 -> 01/15/2022 12:00:00 AM sed -i -E 's,([0-9]{4})-([0-9]{2})-([0-9]{2}),\2/\3/\1 12:00:00 AM,g' 2015.csv sed -i -E 's,([0-9]{4})-([0-9]{2})-([0-9]{2}),\2/\3/\1 12:00:00 AM,g' 2016.csv sed -i -E 's,([0-9]{4})-([0-9]{2})-([0-9]{2}),\2/\3/\1 12:00:00 AM,g' 2017.csv sed -i -E 's,([0-9]{4})-([0-9]{2})-([0-9]{2}),\2/\3/\1 12:00:00 AM,g' 2018.csv sed -i -E 's,([0-9]{4})-([0-9]{2})-([0-9]{2}),\2/\3/\1 12:00:00 AM,g' 2019.csv sed -i -E 's,([0-9]{4})-([0-9]{2})-([0-9]{2}),\2/\3/\1 12:00:00 AM,g' 2020.csv sed -i -E 's,([0-9]{4})-([0-9]{2})-([0-9]{2}),\2/\3/\1 12:00:00 AM,g' 2021.csv 2. Remove , at the end of every line sed -i 's/[,]$//' 2015.csv sed -i 's/[,]$//' 2016.csv sed -i 's/[,]$//' 2017.csv sed -i 's/[,]$//' 2018.csv sed -i 's/[,]$//' 2019.csv sed -i 's/[,]$//' 2020.csv sed -i 's/[,]$//' 2021.csv COMBINE ALL YEARS ================= sed 1d flights2016.csv > 2016.csv & sed 1d flights2017.csv > 2017.csv & sed 1d flights2018.csv > 2018.csv & sed 1d flights2019.csv > 2019.csv & sed 1d flights2020.csv > 2020.csv & sed 1d flights2021.csv > 2021.csv & cp flights2015.csv flights2.csv cat 2016.csv >> flights2.csv cat 2017.csv >> flights2.csv cat 2018.csv >> flights2.csv cat 2019.csv >> flights2.csv cat 2020.csv >> flights2.csv cat 2021.csv >> flights2.csv sed 1d flights2022.csv > 2022.csv cp flights2.csv flights3.csv cat 2022.csv >> flights3.csv Step 1: Remove ^M from the end of line and add , to the end of line (Press Ctrl+v and Ctrl+m) sed -i 's/^M$/,/' monthly/2022-01.csv Step 2: Append flights.csv with the new data ./addmonth 2022-01.csv flights2.csv cp monthly/$1 . sed -i 's/^M$/,/' $1 sed -i 1d $1 cat $1 >> $2 # Add text 'XXXX' at the end of every line sed -n 's/$/XXXX/' input.txt > output.txt sed 's/$/,/' 2022-01.csv > 2022-01n.csv sed 's/^M$/,/' 2022-01.csv > 2022-01n.csv Press Ctrl+v and Ctrl+m s/source/destination/ # Remove the last character of each line # https://www.cyberciti.biz/faq/sed-remove-last-character-from-each-line/ sed 's/.$//' flights.temp > flights2.csv & sed 's/[,]$//' flights.temp > flights2.csv & # By default, sed command so far used would remove any last character. But, say you can restrict removal to digits only as follows: echo "I love Pizza6" | sed 's/[0-9]$//' echo "The best blog in Unixverse3" | sed 's/[[:digit:]]$//' echo "I love Pizza6Times" | sed 's/[0-9]$//' # The “[0-9]“/”[[:digit:]]” indicates all digits such as 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9. Similarly, we can use the following to delete all alphabets: echo "I love donuts two times a dayz" | sed 's/[[:alpha:]]$//' echo "I love donuts 2 times a dayZ" | sed 's/[[:upper:]]$//'