我有一个分隔文件,其前几个字段如下所示:
2774013300|184500|2012-01-04 23:00:00|
我想更改第一个字段等于或超过 8 个字符的某些行。我想截断第一列中的值。
在2774013300
I 的情况下,它的值变为 become 27740133
。
我想在sed
、 或中执行此操作awk
。
使用sed
,我可以在行首找到任何超过 8 位的数字,但我不太确定如何截断它,我假设使用替换。
sed -n -e /'^[0-9]\{10,\}/p' infile
我想我可以对前 8 个字符进行分组并在替代命令中返回这些字符,但我不太确定该怎么做。
在 awk 中,我可以检测到第一个字段,但不太确定如何使用 substr 更改第一个字段然后返回其余字段,因此保留了整行。
awk -F'|' '{ if (length($1) > 9) { print $1; print length($1);} }' infile