У меня есть код, который разделяет значения, которые разделены ",", но есть проблема с частью с "to_date". Есть идеи, как я могу добиться этого.
ВХОД
8363892,14932126,24,'ALL','Staff',to_date('04/17/2017 00:00:00','MM/DD/YYYY) HH24:MI:SS'),to_date('05/24/2017 23:59:59','MM/DD/YYYY HH24:MI:SS'
ВЫХОД
8363892
14932126
24
'ALL'
'Staff'
to_date('04/17/2017 00:00:00','MM/DD/YYYY) HH24:MI:SS')
to_date('05/24/2017 23:59:59','MM/DD/YYYY HH24:MI:SS')
решение1
Если единственное «ложное» положительное число у вас находится между часом и строкой ММ/ДД/ГГГГ, вы можете преобразовать эту запятую в другой символ, прежде чем менять остальные запятые с помощью возврата каретки, я имею в виду:
echo "8363892,14932126,24,'ALL','Staff',to_date('04/17/2017 00:00:00','MM/DD/YYYY) HH24:MI:SS'),to_date('05/24/2017 23:59:59','MM/DD/YYYY HH24:MI:SS'" | sed -e "s/','MM/';'MM/g" | tr ',' '\n'
Если вы хотите отменить изменения после этого:
echo "8363892,14932126,24,'ALL','Staff',to_date('04/17/2017 00:00:00','MM/DD/YYYY) HH24:MI:SS'),to_date('05/24/2017 23:59:59','MM/DD/YYYY HH24:MI:SS'" |
sed -e "s/','MM/';'MM/g" |
tr ',' '\n' |
sed -e "s/';'MM/','MM/g"