You didn't say perl, but here's a one-liner that does what you want...
# cat deb.csv
DEBIT,20100208120000[0:GMT], \
DEBIT,20100208120000[0:GMT], \
DEBIT,20100204120000[0:GMT], \
DEBIT,20100125120000[0:GMT], \
DEBIT,20100125120000[0:GMT], / rest of lines trimmed
DEBIT,20100122120000[0:GMT], /
CREDIT,20100120120000[0:GMT], /
CHECK,20100119120000[0:GMT],
# perl -pe '$_ = "$1,$2_$3_$4_$5$6\n" if
(/(\S+),(\d{4})(\d{2})(\d{2})(\d{6})(.*)/);' < deb.csv
DEBIT,2010_02_08_120000[0:GMT], \
DEBIT,2010_02_08_120000[0:GMT], \
DEBIT,2010_02_04_120000[0:GMT], \
DEBIT,2010_01_25_120000[0:GMT], \
DEBIT,2010_01_25_120000[0:GMT], / rest of lines trimmed
DEBIT,2010_01_22_120000[0:GMT], /
CREDIT,2010_01_20_120000[0:GMT], /
CHECK,2010_01_19_120000[0:GMT],
-Steve
On Thu, Mar 18, 2010 at 10:11 PM, Thomas Taylor <[email protected]> wrote:
> I import a comma separated list from my bank and open it in OOcalc. I have
> trouble reading the date in their format of YYYYMMDDhhmmss, it's all glommed
> together. I want to run a script on it before importing that will put some
> character (prefer either "_" or " " as shown below.
>
> DEBIT,20100208120000[0:GMT], \
> DEBIT,20100208120000[0:GMT], \
> DEBIT,20100204120000[0:GMT], \
> DEBIT,20100125120000[0:GMT], \
> DEBIT,20100125120000[0:GMT], / rest of lines trimmed
> DEBIT,20100122120000[0:GMT], /
> CREDIT,20100120120000[0:GMT], /
> CHECK,20100119120000[0:GMT], /
> ^ ^
> date field (YYYYMMDDhhmmss)
>
> DEBIT,2010_02_08_120000[0:GMT], <<<<< end result I want
>
> pass 6 or 7 char then find ","
> then 4 digits for year
> insert "_"
> then 2 digits for month
> insert "_"
> then 2 digits for day
> insert "_"
> get rest of line
>
> Tried combinations of sed & awk but haven't been able to insert the "_"
> between the year, month, day, and time fields.
>
> Pointers and suggestion would be greatly appreciated. I'm in the process
> of learning bash scripting so please include how the script works (what it
> does). I'm an old hand at C and assembler but the bash/sed/awk syntax has
> me baffled.
> --
> Thanks, Tom (retired penguin)
> openSuSE 11.3-M3, kde 4.4.0
> FF 3.6.0
>
--
Steve McCarthy
[email protected]
[email protected]