Так что в основном у меня есть текстовый файл с сотнями строк вроде этого ..
2020-04-13 17:09:58.934,/abc/blahblahblahI/v1/dennisritchie/7408058445,2020-04-13 17:09:58.687,2020-04-13 17:09:58.934
2020-04-13 17:09:59.387,/cde/bunnyrabbit/v1/tea/generate/9161455644,2020-04-13 17:09:59.322,2020-04-13 17:09:59.387
2020-04-13 17:09:59.567,/fgh/scoobybites/v1/shaggy/markup/7672748033,2020-04-13 17:09:59.459,2020-04-13 17:09:59.567
2020-04-13 17:09:59.640,/xxx/xxxxxxxxxxxxxx/v1/xxx/generate,2020-04-13 17:09:59.624,2020-04-13 17:09:59.640
2020-04-13 17:09:59.796,/yyyy/defoe/v1/aaaaaaaaaal/9820276621?noOfRecords=1&blahlahAccountNo,2020-04-13 17:09:59.523,2020-04-13 17:09:59.796
2020-04-13 17:09:59.780,/dcd/manual/v2/profile/9841001122?fields=billingArrangement,billingAccountNo,faId,2020-04-16 09:59:59.740,2020-04-16 09:59:59.825
Основная цель - выглядеть так, чтобы удалить все с номерами телефонов до последней запятой (только в линий с номерами телефонов), и это должно выглядеть следующим образом.
2020-04-13 17:09:58.934,/abc/blahblahblahI/v1/dennisritchie/,2020-04-13 17:09:58.687,2020-04-13 17:09:58.934
2020-04-13 17:09:59.387,/cde/bunnyrabbit/v1/tea/generate/,2020-04-13 17:09:59.322,2020-04-13 17:09:59.387
2020-04-13 17:09:59.567,/fgh/scoobybites/v1/shaggy/markup/,2020-04-13 17:09:59.459,2020-04-13 17:09:59.567
2020-04-13 17:09:59.640,/xxx/xxxxxxxxxxxxxx/v1/xxx/generate,2020-04-13 17:09:59.624,2020-04-13 17:09:59.640
2020-04-13 17:09:59.796,/yyyy/defoe/v1/aaaaaaaaaal/,2020-04-13 17:09:59.523,2020-04-13 17:09:59.796
2020-04-13 17:09:59.780,/dcd/manual/v2/profile/, ,2020-04-16 09:59:59.740,2020-04-16 09:59:59.825
Есть несколько решений в stockoverflow, Решение отлично работает на всех линиях, кроме линий, похожих на последнюю.
Если вы заметили, что последняя строка немного отличается, она должна выглядеть следующим образом:
2020-04-13 17:09:59.780,/dcd/manual/v2/profile,2020-04-16 09:59:59.740,2020-04-16 09:59:59.825
Но вместо этого она выглядит следующим образом:
2020-04-13 17:09:59.780,/dcd/manual/v2/profile,billingAccountNo,faId,2020-04-16 09:59:59.740,2020-04-16 09:59:59.825
Другие решения, которые я получил в стеке потока ..
sed -E 's|/[0-9]+[^,]*,|/,|' or sed -E 's|/[0-9]{10}[^,]*,|/,|'
awk 'BEGIN{FS=OFS=","} {sub(/[0-9]{10}.*/,"",$2)} 1'