LINUX.ORG.RU

awk, удалить последние 7 символов в первом солбце.


0

1
        302104121001                        GREECE (fix), Athens        00:07:00                        5.18
        8823460781                Int. networks, Global Networks        00:08:00                        2160
        80021561044       INTERNATIONAL FREEPHONE SERVICE (UIFN)        00:02:00                        1.48

т.е. нужно в первой строке удалить 4121001, во второй 3460781, а в третьей 1561044

чтот я заблудился в манах awk

★★★

man awk

хотя это и sed'ом легко решается

Led ★★★☆☆ ()
edikar@edikar-laptop:~$ cat 11111.txt
302104121001 GREECE (fix), Athens 00:07:00 5.18
8823460781 Int. networks, Global Networks 00:08:00 2160
80021561044 INTERNATIONAL FREEPHONE SERVICE (UIFN) 00:02:00 1.48
edikar@edikar-laptop:~$
edikar@edikar-laptop:~$ cat 11111.txt | awk ' {$len=split($1,arr,""); row=""; for(i=1; i<=$len-7; i++){ row=row arr[i] } print row}'
30210
882
8002
ed__ed ()
Ответ на: комментарий от proud_anon

Да, пока ЛОР отваливался, я все же докурил ман awk и сделал, так же как Вы, только у меня теперь это в третьем столбце%), плюс подправил форматирование:

awk -F"\t" '{printf "%15s\t" "%20s\t" "%12s\t" "%-40s\n", $1, $2, substr($3, 1, length($3)-7), $4}'

papay ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.