利用sed 命令去掉windows下回车符及空白符
来源:互联网 发布:javascript 移除元素 编辑:程序博客网 时间:2024/06/05 00:28
1.去掉所有行的空格
sed -i 's/ //g' df.txt
2.去掉所有行的空格
sed -e 's/ //g' df.txt >cwm.txt
3.将每一行拖尾的“空白字符”(空格,制表符)删除
sed 's/ *$//' df.txt >cwm.txt
4.将每一行中的前导和拖尾的空白字符删除
sed 's/^ *//;s/ *$//' df.txt >cwm.txt
5.去掉空行
sed '/^$/d' df.txt >cwm.txt
sed -e '/^$/d' df.txt >cwm.txt
sed -i '/^$/d' df.txt
这三个是等价的 但第三个会改变原文件
6.去掉windows下的回车符 (注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m)
sed -i 's/^M//g' df.txt
7.去掉windows下的回车符 (注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m)
sed -e 's/^M//g' df.txt >cwm.txt
8.sed 用正则表达式 8个字符一组换行
echo "aaaaaaaabbbbbbbbccccccccdddddddd"|sed 's/.\{8\}/&\n/g'
aaaaaaaa
bbbbbbbb
cccccccc
dddddddd
也等价于
dos2unix df.txt >cwm.txt
----------------------------------------------------------------------------------------------
******如何去掉文件中行尾的回车符号^M******
sed 's/^M//g w newfilename' oldfilename
其中:
s 表示Searchg 表示搜索全文,缺省是搜索第一个^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m
w 表示写到新文件中.
例子1
86103113234778,
86103145878770,
86103116778768,
86103111879708,
sed 's/^86//;s/,$//' user.txt #去掉开头的86 及尾部的,号
例子2
103113234778
103145878770
103116778768
103111879708
sed -e 's/^/86/' user.txt #每行行首加上86
86103113234778
86103145878770
86103116778768
86103111879708
------------------------------------------------------------------
我有一个文件:
aaa,
bbb,
ccc,
ddd,
eee,
fff,
想删除第3,6,9。。。的空行并且合并12,45,78。。。行,
结果如下:
aaa,bbb,
ccc,ddd,
eee,fff,
.......
解法
sed -e '/^$/d' -e 'N;s/\n//g'
或
sed 'N;N;s/\n//g' (行数必须是3的倍数,不然最后一行不对)
对于替换单引号外层应加双引号
sed "s/^/'/;s/$/'/" 营帐GPRS用户.txt
===========================================================================
用sed 模式空间把时间格式加个空格
[oracle@TestAs4 filter]$ more nd_td.txt
13211124412,2008-08-2613:24:07,2008-08-2615:28:39
13144035749,2008-08-2613:24:06,2008-08-2615:30:39
13144023993,2008-08-2613:19:11,2008-08-2615:37:34
13006601565,2008-08-2612:04:15,2008-08-2615:40:34
13178665198,2008-08-2613:17:49,2008-08-2615:42:35
13058107546,2008-08-2613:08:41,2008-08-2615:49:35
13246005230,2008-08-2613:27:20,2008-08-2615:54:36
[oracle@TestAs4 filter]$ sed 's/2008−[0−9][0−9]−[0−9][0−9] /& /g' nd_td.txt |more
13211124412,2008-08-26 13:24:07,2008-08-26 15:28:39
13144035749,2008-08-26 13:24:06,2008-08-26 15:30:39
13144023993,2008-08-26 13:19:11,2008-08-26 15:37:34
13006601565,2008-08-26 12:04:15,2008-08-26 15:40:34
13178665198,2008-08-26 13:17:49,2008-08-26 15:42:35
13058107546,2008-08-26 13:08:41,2008-08-26 15:49:35
13246005230,2008-08-26 13:27:20,2008-08-26 15:54:36
13169867085,2008-08-26 13:18:14,2008-08-26 15:58:34
13043484284,2008-08-26 12:04:07,2008-08-26 16:03:35
以下两个都是利用模式空间替换实现的
sed 's/2008−[0−9][0−9]−[0−9][0−9] /\1 /g' nd_td.txt |more
sed 's/2008−[0−9][0−9]−[0−9][0−9] [0−9][0−9]:[0−9][0−9]:[0−9][0−9] /\1 \2/g' nd_td.txt |more
sed -i 's/ //g' df.txt
2.去掉所有行的空格
sed -e 's/ //g' df.txt >cwm.txt
3.将每一行拖尾的“空白字符”(空格,制表符)删除
sed 's/ *$//' df.txt >cwm.txt
4.将每一行中的前导和拖尾的空白字符删除
sed 's/^ *//;s/ *$//' df.txt >cwm.txt
5.去掉空行
sed '/^$/d' df.txt >cwm.txt
sed -e '/^$/d' df.txt >cwm.txt
sed -i '/^$/d' df.txt
这三个是等价的 但第三个会改变原文件
6.去掉windows下的回车符 (注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m)
sed -i 's/^M//g' df.txt
7.去掉windows下的回车符 (注意^M 在linux 下写法 按^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m)
sed -e 's/^M//g' df.txt >cwm.txt
8.sed 用正则表达式 8个字符一组换行
echo "aaaaaaaabbbbbbbbccccccccdddddddd"|sed 's/.\{8\}/&\n/g'
aaaaaaaa
bbbbbbbb
cccccccc
dddddddd
也等价于
dos2unix df.txt >cwm.txt
----------------------------------------------------------------------------------------------
******如何去掉文件中行尾的回车符号^M******
sed 's/^M//g w newfilename' oldfilename
其中:
s 表示Searchg 表示搜索全文,缺省是搜索第一个^M 是回车换行符,输入方法是按住CTRL+v,松开v,按m
w 表示写到新文件中.
例子1
86103113234778,
86103145878770,
86103116778768,
86103111879708,
sed 's/^86//;s/,$//' user.txt #去掉开头的86 及尾部的,号
例子2
103113234778
103145878770
103116778768
103111879708
sed -e 's/^/86/' user.txt #每行行首加上86
86103113234778
86103145878770
86103116778768
86103111879708
------------------------------------------------------------------
我有一个文件:
aaa,
bbb,
ccc,
ddd,
eee,
fff,
想删除第3,6,9。。。的空行并且合并12,45,78。。。行,
结果如下:
aaa,bbb,
ccc,ddd,
eee,fff,
.......
解法
sed -e '/^$/d' -e 'N;s/\n//g'
或
sed 'N;N;s/\n//g' (行数必须是3的倍数,不然最后一行不对)
对于替换单引号外层应加双引号
sed "s/^/'/;s/$/'/" 营帐GPRS用户.txt
===========================================================================
用sed 模式空间把时间格式加个空格
[oracle@TestAs4 filter]$ more nd_td.txt
13211124412,2008-08-2613:24:07,2008-08-2615:28:39
13144035749,2008-08-2613:24:06,2008-08-2615:30:39
13144023993,2008-08-2613:19:11,2008-08-2615:37:34
13006601565,2008-08-2612:04:15,2008-08-2615:40:34
13178665198,2008-08-2613:17:49,2008-08-2615:42:35
13058107546,2008-08-2613:08:41,2008-08-2615:49:35
13246005230,2008-08-2613:27:20,2008-08-2615:54:36
[oracle@TestAs4 filter]$ sed 's/
13211124412,2008-08-26 13:24:07,2008-08-26 15:28:39
13144035749,2008-08-26 13:24:06,2008-08-26 15:30:39
13144023993,2008-08-26 13:19:11,2008-08-26 15:37:34
13006601565,2008-08-26 12:04:15,2008-08-26 15:40:34
13178665198,2008-08-26 13:17:49,2008-08-26 15:42:35
13058107546,2008-08-26 13:08:41,2008-08-26 15:49:35
13246005230,2008-08-26 13:27:20,2008-08-26 15:54:36
13169867085,2008-08-26 13:18:14,2008-08-26 15:58:34
13043484284,2008-08-26 12:04:07,2008-08-26 16:03:35
以下两个都是利用模式空间替换实现的
sed 's/
sed 's/
0 0
- 利用sed 命令去掉windows下回车符及空白符
- 利用sed 命令去掉windows下回车符及空白符
- 利用sed 命令去掉windows下回车符及空白符
- 利用sed 命令去掉windows下回车符及空白符
- 利用sed 命令去掉windows下回车符及空白符
- sed 比较实用的(去掉windows下回车符及空白符)
- Ruby 去掉空白符
- Ruby 去掉空白符
- inux下去掉windows文本的多余的回车符(^M)
- Oracle去掉回车符
- word2010去掉回车符
- vim去掉windows文本的多余的回车符(^M)
- vim去掉windows文本的多余的回车符(^M)
- 去掉windows文本的多余的回车符(^M)
- 去掉多余的回车符
- sed替换成换行符/回车符
- NSString去掉换行符和空白字符
- NSString去掉换行符和空白字符
- Android Service完全解析,关于服务你所需知道的一切(上)
- 我的WCF之旅(12):使用MSMQ进行Reliable Messaging
- iOS中KVO的实现原理
- Linux常用命令
- response对象输出中文,产生乱码
- 利用sed 命令去掉windows下回车符及空白符
- Shell 编程详解之Shell简介<一>
- vijos1049——送给圣诞夜的礼品
- MySQL密码找回
- 如何利用socket进行HTTP访问
- 海量数据处理问题
- 利用tensorflow搭建CIFAR10 分类网络
- 我的WCF之旅(13):创建基于MSMQ的Responsive Service
- LeetCode笔记:378. Kth Smallest Element in a Sorted Matrix