Chinaunix

标题: 如何用shell获取文本每行的前n个字符? [打印本页]

作者: coolminghao    时间: 2010-04-02 11:11
标题: 如何用shell获取文本每行的前n个字符?
想抓取文本每行的前n个字符作为一个新文件,请问如何实现?
作者: fargo    时间: 2010-04-02 11:32
cut -b1-n file>newfile
作者: 709101040516    时间: 2010-04-02 11:47
  1. for i in `cut -b1-4  FILE`;do touch $i;done
复制代码

作者: iori809    时间: 2010-04-02 11:54
sed 's/\(...\).*/\1/' test19.txt > newfile
作者: 709101040516    时间: 2010-04-02 11:57
回复 4# iori809


    又理解错LZ的意思了??哈哈
作者: iori809    时间: 2010-04-02 12:00
回复 5# 709101040516


    晕~不会吧·我这次可是想了得有3分钟需求。才开始写的。不是开头的字符码? .代表字符啊
作者: 709101040516    时间: 2010-04-02 12:02
回复 6# iori809


    是每行前几个字符做为一个文件,所以有几行 就有几个文件。。
作者: iori809    时间: 2010-04-02 12:02

作者: 709101040516    时间: 2010-04-02 12:10
你经常理解错啊 哈哈哈啊  客户需求要很明白的呀。。
作者: levinswong    时间: 2010-04-02 12:14
sed  's/\(.\{n\}\).*/\1/w newfile'  original-file

n为具体数字,看需求了。

作用:把original-file每行的前n个字符存储为一个新文件newfile
作者: ywlscpl    时间: 2010-04-02 12:16
回复  iori809


    是每行前几个字符做为一个文件,所以有几行 就有几个文件。。
709101040516 发表于 2010-04-02 12:02

想抓取文本每行的前n个字符作为一个新文件,请问如何实现?

明显需求是产生一个文件
作者: 709101040516    时间: 2010-04-02 12:40
回复 11# ywlscpl


    我不信,让LZ 出来证言!!
作者: iori809    时间: 2010-04-02 13:03
回复 12# 709101040516


    呵呵~看来有人站在我这边了~ 看来  我的理解能力比以前强点了
作者: ywlscpl    时间: 2010-04-02 13:54
回复  ywlscpl


    我不信,让LZ 出来证言!!
709101040516 发表于 2010-04-02 12:40



   
想抓取文本每行的前n个字符作为一个新文件,请问如何实现?


虽然这句话是有歧义,但我想大部人的理解应该跟我一样,产生一个文件
作者: blackold    时间: 2010-04-02 14:00
文字陷阱。
作者: wtuter    时间: 2010-04-02 14:04
回复 1# coolminghao


    应该是一个文件吧,
作者: Shell_HAT    时间: 2010-04-02 15:20

  1. awk 'BEGIN{FS=OFS=""}{NF=NF-2}1' urfile >urfile_new
复制代码

作者: where27    时间: 2010-04-02 15:43
回复 15# blackold
  1. egrep -o "^.{3}" file > file1
复制代码
为什么这个不行呢黑哥
作者: blackold    时间: 2010-04-02 15:49
回复 18# where27


    怎么不行?
作者: where27    时间: 2010-04-02 15:53
回复 19# blackold
  1. ZB-MVS-LIVE8:~/xunjian/practise # more file
  2. aabbcc
  3. ddeeff
  4. gghhii
  5. ZB-MVS-LIVE8:~/xunjian/practise # egrep -o "^.{3}" file
  6. aab
  7. bcc
  8. dde
  9. eff
  10. ggh
  11. hii
复制代码

作者: blackold    时间: 2010-04-02 16:00
回复 20# where27


    什么环境?
作者: where27    时间: 2010-04-02 17:14
回复 21# blackold


    suse linux 9
   egrep (GNU grep) 2.5.1
作者: blackold    时间: 2010-04-02 17:27
回复 22# where27


    是否与shell有关?没碰到过这种问题。
作者: Shell_HAT    时间: 2010-04-02 17:34
# cat urfile
12345
23456
34567
# egrep -o "^.{3}" urfile
123
234
345
# uname -a
Linux ubuntu 2.6.24-22-generic #1 SMP Mon Nov 24 19:35:06 UTC 2008 x86_64 GNU/Linux

作者: where27    时间: 2010-04-02 17:50
回复 23# blackold
  1. ZB-MVS-LIVE8:~/xunjian/practise # more file
  2. aabbcc
  3. ddeeff
  4. gghhii
  5. ZB-MVS-LIVE8:~/xunjian/practise # egrep -o "^.{3}" file
  6. aab
  7. bcc
  8. dde
  9. eff
  10. ggh
  11. hii
  12. ZB-MVS-LIVE8:~/xunjian/practise # uname -a
  13. Linux ZB-MVS-LIVE8 2.6.5-7.315-bigsmp #1 SMP Wed Nov 26 13:03:18 UTC 2008 i686 i686 i386 GNU/Linux
  14. ZB-MVS-LIVE8:~/xunjian/practise # bash --version
  15. GNU bash, version 2.05b.0(1)-release (i586-suse-linux)
  16. Copyright (C) 2002 Free Software Foundation, Inc.
复制代码

作者: blackold    时间: 2010-04-02 17:54
回复 25# where27


    使用的是bash?
作者: where27    时间: 2010-04-02 18:22
回复 26# blackold
  1. ZB-MVS-LIVE8:~ # echo $SHELL
  2. /bin/bash
复制代码

作者: blackold    时间: 2010-04-02 18:50
回复 27# where27


    不知道是什么原因了。使用单引号时结果如何?
作者: Shell_HAT    时间: 2010-04-02 21:22
grep -E的结果如何呢?
# egrep --version
GNU grep 2.5.3

作者: laohuanggua    时间: 2010-04-02 21:55
bash --version
GNU bash, version 4.1.0(1)-release (i486-pc-linux-gnu)


uname -a
Linux yzhkpli-desktop 2.6.32-16-generic #25-Ubuntu SMP Tue Mar 9 16:33:52 UTC 2010 i686 GNU/Linux


egrep --version
GNU grep 2.5.4




egrep -o "^.{3}" urfile2
abb
dde
ggh
作者: bluewaterray    时间: 2010-04-02 23:08
man cut
作者: Honwhy    时间: 2012-11-30 15:28
一行文本的前N个字符怎么获取啊...
作者: Honwhy    时间: 2012-11-30 15:47
echo $str | head -cN
----
-c 取前N个字节?
作者: udevu    时间: 2012-11-30 17:54
回复 7# 709101040516
我觉得用户需求不是每行都存到一个新文件里,有几行就有几个文件
应该是iori理解的那样
还是看LZ怎么说吧


   
作者: 代号:军刀    时间: 2012-11-30 18:32
楼主都两年没上线了,大家还在提楼主的需求。。。。。。。。。。。。。。。。。。。。。。。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2