Удаление всего в столбце после определенного встроенного символа в CSV-файле

Удаление всего в столбце после определенного встроенного символа в CSV-файле

Мне нужно удалить все содержимое, которое появляется в столбце после определенного символа в CSV-файле. Это формат, в котором он находится в данный момент:

2020-01-01T12:00:00,Transaction Description,Initiator,$00.00

Я хочу удалить содержимое в первом столбце, которое следует после T, чтобы это выглядело так:

2020-01-01,Transaction Description,Initiator,$00.00

Я попробовал sed, но он не сработал так, как ожидалось.

решение1

Использование стандарта sedаналогичноТимур использует Perl:

$ sed 's/T[^,]*//' file
2020-01-01,Transaction Description,Initiator,$00.00

Это удаляет весь текст с первой буквы Tв каждой строке до первой запятой (но не включая ее) с помощью замены.

Перейдите в новый файл, чтобы сохранить результат.

решение2

Используйте эту однострочник Perl:

perl -pe 's{T[^,]*}{}' input_file > output_file

Здесь
-eфлаг командной строки сообщает Perl, что нужно использовать код, который следует в строке, а не искать код в указанном скрипте,
-pсообщает Perl, что нужно перебирать ввод по одной строке за раз, печатая его после выполнения указанного кода,
s{T[^,]*}{}заменяет Tза которым следуют любые символы, отличные от ,нуля или более раз ( *указывает жадное или самое длинное совпадение). Это «съедает» символы, начиная с первой T, включительно, и заканчивая первой следующей запятой, не включая.

решение3

Метод1:

awk -F "," 'OFS=","{gsub(/T.*/,"",$1);print $0}' filename

выход

2020-01-01,Transaction Description,Initiator,$00.00

команда2

perl -pne "s/,/\n/g" filenmame| sed '/.T/s/T.*//g'|perl -pne "s/\n/,/g"| sed "s/,$//g"

выход

2020-01-01,Transaction Description,Initiator,$00.00

метод3

#!/usr/bin/python
import re
p=re.compile(r'T.*')
k=open('p.txt','r')
for i in k:
    l=i.split(",")
    z=re.sub(p,"",l[0])
    rt=",".join(l[1:])
    er=",{0}".format(rt)
    print z+er,

выход

2020-01-01,Transaction Description,Initiator,$00.00

Связанный контент