当前位置: 技术问答>linux和unix
shell查找指定区间的字符串并将该文件转换成unix格式
来源: 互联网 发布时间:2016-08-25
本文导语: a.txt文件的内容是第三方工具提取出来的,无法改变;目的是用shell脚本提取出@@之前的每一行字符保存为b.txt,再判断这些文件是否属于Dos格式,如果是的话要求转换成Unix格式. a.txt的内容:如下 /home/aaa/a.c@@/cn_p_g_tt /home/bbbaaa/bb/a....
a.txt文件的内容是第三方工具提取出来的,无法改变;目的是用shell脚本提取出@@之前的每一行字符保存为b.txt,再判断这些文件是否属于Dos格式,如果是的话要求转换成Unix格式.
a.txt的内容:如下
/home/aaa/a.c@@/cn_p_g_tt
/home/bbbaaa/bb/a.c@@/cn_p_g______________xxxxx
/home/bbbaaa/bb/this.c@@/cn_p_g
/home/bbbaaa/bb/kk.c@@/cn_p_g
/home/bbbaaa/bb/qq.c@@/cn_p_g__fffffffffffffffff
/home/bbbaaa/bb/cc/dd/ii_str.c@@/cn_p_g
下面是我想到的判断是否是Dos还是Linux的语句,供参考,有哪位能写出这个shell吗,用正则表达式、sed 、awk、grep等等都行。
a.txt的内容:如下
/home/aaa/a.c@@/cn_p_g_tt
/home/bbbaaa/bb/a.c@@/cn_p_g______________xxxxx
/home/bbbaaa/bb/this.c@@/cn_p_g
/home/bbbaaa/bb/kk.c@@/cn_p_g
/home/bbbaaa/bb/qq.c@@/cn_p_g__fffffffffffffffff
/home/bbbaaa/bb/cc/dd/ii_str.c@@/cn_p_g
下面是我想到的判断是否是Dos还是Linux的语句,供参考,有哪位能写出这个shell吗,用正则表达式、sed 、awk、grep等等都行。
|
#!/bin/bash
path=/path/
sed -e "s/@@.*//g" ${path}a.txt > ${path}b.txt
file ${path}a.txt |grep -q CRLF && dos2unix ${path}b.txt
while read line
do
file $line |grep -q CRLF && dos2unix $line
done
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。