I want to perform a simple bash script. The requirement is as follows:
- The data has the delimiter of csv (,)
- The columns are inconsistent
- I want to insert a column 'NA' if previous column data is 'login_success'
The data is as follows:
2022.01.26,00:37:08,login_success,BASIC_LOGIN,abc 2022.01.26,00:37:09,login_failed,User_not_authenticated,BASIC_LOGIN, 2022.01.26,00:37:09,login_success,TOKEN_LOGIN,xyz 2022.01.26,00:37:09,login_success,BASIC_LOGIN,123 2022.01.26,00:37:10,login_success,TOKEN_LOGIN,abc123 2022.01.26,00:37:11,login_success,BASIC_LOGIN,xyz123 2022.01.26,00:37:11,login_success,TOKEN_LOGIN,abc 2022.01.26,00:37:11,login_success,BASIC_LOGIN,xyz 2022.01.26,00:37:11,login_success,TOKEN_LOGIN,123 2022.01.26,00:37:12,login_success,BASIC_LOGIN,pqr 2022.01.26,00:37:13,login_failed,Token_does_not_exist,TOKEN_LOGIN, 2022.01.26,00:37:13,login_success,BASIC_LOGIN,abc123 2022.01.26,00:37:14,login_success,TOKEN_LOGIN,xyz123 2022.01.26,00:37:14,login_success,TOKEN_LOGIN,pqr123
Desired output:
2022.01.26,00:37:08,login_success,NA,BASIC_LOGIN,abc 2022.01.26,00:37:09,login_failed,User_not_authenticated,BASIC_LOGIN, 2022.01.26,00:37:09,login_success,NA,TOKEN_LOGIN,xyz 2022.01.26,00:37:09,login_success,NA,BASIC_LOGIN,123 2022.01.26,00:37:10,login_success,NA,TOKEN_LOGIN,abc123 2022.01.26,00:37:11,login_success,NA,BASIC_LOGIN,xyz123 2022.01.26,00:37:11,login_success,NA,TOKEN_LOGIN,abc 2022.01.26,00:37:11,login_success,NA,BASIC_LOGIN,xyz 2022.01.26,00:37:11,login_success,NA,TOKEN_LOGIN,123 2022.01.26,00:37:12,login_success,NA,BASIC_LOGIN,pqr 2022.01.26,00:37:13,login_failed,Token_does_not_exist,TOKEN_LOGIN, 2022.01.26,00:37:13,login_success,NA,BASIC_LOGIN,abc123 2022.01.26,00:37:14,login_success,NA,TOKEN_LOGIN,xyz123 2022.01.26,00:37:14,login_success,NA,TOKEN_LOGIN,pqr123
CodePudding user response:
Something like this
sed 's/\(,login_success\),/\1,NA,/g' file.csv
