Удалить слова из столбца в файле

У меня есть файл, который содержит что-то вроде ниже

5,test,2019-09-27T11:06:23Z,closed,harshavardhanc,2019-09-27T11:09:28Z,2,2
4,test,2019-09-26T16:56:40Z,closed,harshavardhanc,2019-09-26T16:57:02Z,1,1
3,test,2019-09-26T16:54:25Z,closed,harshavardhanc,2019-09-26T16:54:55Z,1,1
2,test,2019-09-26T16:52:59Z,closed,harshavardhanc,2019-09-26T16:55:19Z,1,1
1,test,2019-09-26T16:46:52Z,closed,harshavardhanc,2019-09-26T16:47:25Z,1,1

Я хочу обрезать 3-й столбец 2019-09-27T11:06:23Z до 2019-09-27 В основном я хочу удалить время и просто сохранить дату здесь.

4,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:57:02Z,1,1
3,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:54:55Z,1,1
2,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:55:19Z,1,1
1,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:47:25Z,1,1

Я пытался использовать awk с gsub awk '{gsub("T","",$3);print}' test

Но не повезло, пожалуйста, помогите, как мне этого добиться.

2
задан 30 September 2019 в 09:47

1 ответ

Попытка:

$ awk -F, '{sub(/T.*/,"",$3);print}' OFS=, file
5,test,2019-09-27,closed,harshavardhanc,2019-09-27T11:09:28Z,2,2
4,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:57:02Z,1,1
3,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:54:55Z,1,1
2,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:55:19Z,1,1
1,test,2019-09-26,closed,harshavardhanc,2019-09-26T16:47:25Z,1,1

Примечания:

  1. Ваш файл является разделенной запятой. Таким образом необходимо указать -F, так, чтобы на входе каждая строка была разделена на поля на основе запятых.

  2. , Так как Вы хотите разделенный от запятой файл на выводе, мы также должны указать OFS=,.

  3. первым аргументом sub (или gsub) должно быть регулярное выражение не строка. В нашем случае регулярное выражение должно соответствовать T и все после. .* средства все после.

  4. С тех пор awk программисты часто гордятся краткостью, Вы могли бы хотеть удалить print (слишком многоречивый) и вместо этого использовать:

    awk -F, '{sub(/T.*/,"",$3)} 1' OFS=, file
    
4
ответ дан 23 October 2019 в 09:58

Другие вопросы по тегам:

Похожие вопросы: