如何清除文本文件txt中所有空格符

sh/bash/dash/ksh/zsh等Shell脚本
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

如何清除文本文件txt中所有空格符

#1

帖子 yuhongchun » 2008-09-18 13:34

我有篇小说,txt文件的,每一行行首和行尾都有空格符,非常不方便排版和阅读,这个如何用sed或别的处理下,即想把所有空格符清除,谢谢大家帮忙解惑。
头像
HuntXu
论坛版主
帖子: 5776
注册时间: 2007-09-29 3:09
送出感谢: 0
接收感谢: 6 次

#2

帖子 HuntXu » 2008-09-18 13:46

代码: 全选

sed -r 's/^\s*//;s/\s*$//'
笨方法...
HUNT Unfortunately No Talent...
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

#3

帖子 yuhongchun » 2008-09-18 14:07

好像不行啊,会把文件删成0字节的。
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#4

帖子 solcomo » 2008-09-18 15:59

sed -i 's/[[:space:]]//g' file.txt
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

#5

帖子 yuhongchun » 2008-09-18 17:35

谢谢楼上的同学,另外如何删除多余的换行符,即Office中的Enter键形成的字符。
头像
冲浪板
论坛版主
帖子: 7466
注册时间: 2007-05-06 8:19
送出感谢: 0
接收感谢: 5 次

#6

帖子 冲浪板 » 2008-09-18 18:15

自己想!
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

#7

帖子 yuhongchun » 2008-09-18 18:18

sed 's/\r//g' filename



用了这个也删不掉,晕。
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

#8

帖子 yuhongchun » 2008-09-18 18:18

sed 's/^M//g'



这个好像也不行,,,,,,
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#9

帖子 solcomo » 2008-09-18 18:22

To type ^M hit ctrl+v first and then M.
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

#10

帖子 yuhongchun » 2008-09-18 18:26

不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行不行
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#11

帖子 solcomo » 2008-09-18 18:38

按ctrl+v
再按ctrl+m
出来的^M才行
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

#12

帖子 yuhongchun » 2008-09-18 18:52

是这样的,就是删不了,唉,不研究了,免得影响晚上的好心情>
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30
送出感谢: 2 次
接收感谢: 31 次

#13

帖子 aerofox » 2008-09-18 22:05

yuhongchun 写了:谢谢楼上的同学,另外如何删除多余的换行符,即Office中的Enter键形成的字符。

代码: 全选

sed -i '/^[[:space:]]*$/d' file.txt
头像
patrickhe
帖子: 681
注册时间: 2005-07-21 19:13
来自: Peking, China
送出感谢: 0
接收感谢: 0
联系:

#14

帖子 patrickhe » 2008-09-18 22:44

先用 dos2unix 对文本预处理一下
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11
送出感谢: 0
接收感谢: 0

#15

帖子 yuhongchun » 2008-09-19 13:43

patrickhe 写了:先用 dos2unix 对文本预处理一下




谢谢14楼的同学,这个答案应该是正解,难怪用了许多方法都删不掉换行符,另问下,Ubuntu下如何使用dos2unix呢?
回复

回到 “Shell脚本”