请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

sh/bash/dash/ksh/zsh等Shell脚本
回复
easthui
帖子: 2
注册时间: 2009-10-22 12:59

请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#1

帖子 easthui » 2009-10-22 13:09

我有许多类似以下内容的txt文件,其中有用的主要是两行有数值的部分,其余多余的回车行(文件中回车行数量不一定)必须删除,否则存在问题,如何能批量的修改一下这些txt文件呢,或者是如何能提取出来前两行文件也行,存成同样的文件名文件就可以。不知道我表述清楚没有,请熟悉这方面的指点一下:谢谢!
文件示例:
8.1593 8.1601 8.1601 8.1590 8.1594 8.1601 8.1598 8.1589 8.1594 8.1595 8.1588 8.1599
8.1582 8.1597 8.1586 8.1594 8.1588 8.1594 8.1584 8.1588 8.1597 8.1593 8.1592 8.1597
<-注意此处是多余的空格
<-注意此处是多余的空格
<-注意此处是多余的空格
... ...
chenwl
帖子: 509
注册时间: 2008-09-06 10:04

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#2

帖子 chenwl » 2009-10-22 13:26

easthui 写了:我有许多类似以下内容的txt文件,其中有用的主要是两行有数值的部分,其余多余的回车行(文件中回车行数量不一定)必须删除,否则存在问题,如何能批量的修改一下这些txt文件呢,或者是如何能提取出来前两行文件也行,存成同样的文件名文件就可以。不知道我表述清楚没有,请熟悉这方面的指点一下:谢谢!
文件示例:
8.1593 8.1601 8.1601 8.1590 8.1594 8.1601 8.1598 8.1589 8.1594 8.1595 8.1588 8.1599
8.1582 8.1597 8.1586 8.1594 8.1588 8.1594 8.1584 8.1588 8.1597 8.1593 8.1592 8.1597
<-注意此处是多余的空格
<-注意此处是多余的空格
<-注意此处是多余的空格
... ...

代码: 全选

awk '!/^[[:space:]]*$/ {print $0}' data.txt
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#3

帖子 xiooli » 2009-10-22 13:30

代码: 全选

sed -ni '/[0-9]./p' file

代码: 全选

awk '/[0-9]./{print}' file > newfile

代码: 全选

grep "[0-9.]" file > newfile
chenwl
帖子: 509
注册时间: 2008-09-06 10:04

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#4

帖子 chenwl » 2009-10-22 13:39

假设当前目录下只有那些需要修改的文件,且文件名都是.txt后缀的。

代码: 全选

[chenwl@myhost Desktop]$ for file in *.txt
> do
> mv $file $file.old
> awk '!/^[[:space:]]*$/ {print $0}' $file.old > $file
> done
t3swing
帖子: 1028
注册时间: 2008-11-01 21:42
来自: 树下板凳

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#5

帖子 t3swing » 2009-10-22 13:50

cat *.txt|sed -ne '/[0-9]./p' >newfile
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#6

帖子 roylez » 2009-10-22 13:53

几天前刚刚学会的必杀

代码: 全选

grep . a.txt > b.txt
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#7

帖子 xiooli » 2009-10-22 14:05

roylez 写了:几天前刚刚学会的必杀

代码: 全选

grep . a.txt > b.txt
主席,你的必杀不管用阿:

代码: 全选

xiooli(~)>> cat /tmp/a            
8.1593 8.1601 8.1601 8.1590 8.1594 8.1601 8.1598 8.1589 8.1594 8.1595 8.1588 8.1599
8.1582 8.1597 8.1586 8.1594 8.1588 8.1594 8.1584 8.1588 8.1597 8.1593 8.1592 8.1597 
                                                                                    
                                                                                    



xiooli(~)<< grep . /tmp/a > /tmp/b
xiooli(~)>> cat /tmp/b
8.1593 8.1601 8.1601 8.1590 8.1594 8.1601 8.1598 8.1589 8.1594 8.1595 8.1588 8.1599
8.1582 8.1597 8.1586 8.1594 8.1588 8.1594 8.1584 8.1588 8.1597 8.1593 8.1592 8.1597





xiooli(~)<<
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#8

帖子 roylez » 2009-10-22 14:08

因为你的空行里面有空格
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
easthui
帖子: 2
注册时间: 2009-10-22 12:59

Re: 请教一个批量删除文本文件中多余回车或提取文本中前两行数据的脚本,请高手指点,万分感谢

#10

帖子 easthui » 2009-10-22 14:30

果然是高手如云,谢谢大家拉,搞定!
回复