Есть файл со столбцами, разделёнными ":" (двоеточием) нужно что бы в определённо столбце было 10 символов, то есть оставить первые 10, остальные удалить.
Пытался реализовать по средствам awk, не вышло.
grep error#: CHRIS_02230806.txt | gawk -F":" '{printf "s\n", $2}'
какие есть соображения, как это реализовать?
В awk есть функция substr как раз для того, чтобы выделять подстроку.Или же можно сделать что-нибудь вроде замены s/([^:]{10})[^:]*:/\1/, ну и отдельно обработать последний столбец
>Есть файл со столбцами, разделёнными ":" (двоеточием) нужно что бы в определённо
>столбце было 10 символов, то есть оставить первые 10, остальные удалить.
>
>Пытался реализовать по средствам awk, не вышло.
>grep error#: CHRIS_02230806.txt | gawk -F":" '{printf "s\n", $2}'
>какие есть соображения, как это реализовать?Стоит попробовать sed:
http://www.student.northpark.edu/pemente/sed/sedfaq4.html#s4.12
для bash:IFS=':'
grep error#: CHRIS_02230806.txt | while read c1 c2 c3 rest_of_them
do
echo ${c2:0:10}
done
>Есть файл со столбцами, разделёнными ":" (двоеточием) нужно что бы в определённо
>столбце было 10 символов, то есть оставить первые 10, остальные удалить.
>
>Пытался реализовать по средствам awk, не вышло.
>grep error#: CHRIS_02230806.txt | gawk -F":" '{printf "s\n", $2}'
>какие есть соображения, как это реализовать?В awk есть substr.
awk -v OFS=: -F: '{$2=substr($2,0,10); print}'