Я хочу обновить только первый столбец в файле, но не первое вхождение.ниже приведен код, который я в настоящее время использую для обновления первого вхождения.
Чтобы изменить первое вхождение даты
sed 's/\(....\)-\(..\)-\(..\)/\2\/\3\/\1/'
У меня возникают некоторые проблемы, например, иногда дата указана справаформат, который находится в первом столбце, поэтому приведенный выше код изменяет дату в третьем или четвертом столбце, поскольку это первое вхождение.что я не хочу
ниже - это то, что я делаю:
2018-09-14^Aaaa^Aq^ATEST^Abc^2018-09-14^A1^2018-09-14
sed 's/\(....\)-\(..\)-\(..\)/\2\/\3\/\1/'
2018/14/09^Aaaa^Aq^ATEST^Abc^2018-09-14^A1^2018-09-14
Некоторые строки в моем файле имеют правильный формат, а некоторые нет.Поэтому я хочу изменить только первый столбец в файле, если он не соответствует формату "гггг / мм / дд", и игнорировать, если он уже находится в формате "гггг / мм / дд".
Вывод я хочу
$cat test.csv
2018/14/09^Aaa^Aa^ATEST^Abc^2018-09-14^A1^2018-09-14
2018-09-14^Aaa^Aa^ATEST^Abc^2018-09-14^A1^2018-09-14
To
$ cat output_test.csv
2018/14/09^Aaa^Aa^ATEST^Abc^2018-09-14^A1^2018-09-14
2018/14/09^Aaa^Aa^ATEST^Abc^2018-09-14^A1^2018-09-14