使用awk,sed修剪前9个字母

时间:2012-10-01 22:42:10

标签: shell sed awk

我在文件中有以下数据,我只需保留文件的前9个字符和|将它发送到另一个文件

03755432101JONPORT,
037554321031979123120800000000000000000000000000000000
0375543210413855
03755432105JEEY
03755432111P63
03755432133100620120000008156GR1

应该看起来像

037554321
037554321
037554321
037554321
037554321
037554321

4 个答案:

答案 0 :(得分:10)

对于这么简单的任务,请使用cut

cut -b1-9

如果您的数据包含Unicode,则可能需要-c而不是-b

答案 1 :(得分:2)

使用sed

sed 's/\(.\{9\}\).*/\1/' input_file

使用gawk

gawk '{temp = gensub(/(.{9}).*/,"\\1", "g"); print temp}' input_file

但是,对于这种简单的需求,请使用cut,如@choroba所建议的那样。

答案 2 :(得分:1)

尝试以下grep命令:

grep -o "^.\{9\}" FILE

答案 3 :(得分:1)

你可以简单地使用: -

cut -c10-