1
Muninn 2012-03-27 00:05:49 +08:00
ue之类的编辑器替换
甚至word都能替换 |
2
RustingSword 2012-03-27 00:09:43 +08:00
sed
|
3
gujiaxi 2012-03-27 00:21:44 +08:00
sed
|
4
013231 OP @gujiaxi @RustingSword sed应该怎么做? 就算没有换行符, sed输出一行时也会加上一个换行符. 如何禁止sed自动添加换行符?
|
5
013231 OP @yuhuofeihe @Muninn 我需要一个自动化的解决方案.
|
6
66450146 2012-03-27 00:39:34 +08:00
|
8
Muninn 2012-03-27 01:24:37 +08:00
汗...我还没见过到研究sed层次的人不会做这个...
|
9
chone 2012-03-27 02:02:07 +08:00
不用sed其他任意一种可以用正则的方式总行吧。
|
10
yuhuofeihe 2012-03-27 08:31:30 +08:00
首选word~
|
11
lackrp 2012-03-27 09:36:28 +08:00
cat <filename> | perl -pe 'chop if eof'
|
12
why 2012-03-27 10:19:27 +08:00
正则表达式
|
13
013231 OP |
15
Muninn 2012-03-27 20:55:19 +08:00
Perl那个的确够简洁
vi是可以实现的,但是稍微麻烦,需要预先知道有多少行 vi里J可以合并下一行 有多少行就用一个数字跟上J就可以了 哎呀我晕了 vi不用那么麻烦 明明:%s/\n//g 就搞定了 sed也是可以的 这个我以前用过 sed ':a N;s/\n//g;ta' 最简单的貌似是tr啊 tr -d '\n' |
16
013231 OP @Muninn 我的需求是: 如果文件的**最后一个**字符是'\n', 那么删除它. 不是删除文本中的全部'\n'.
在vim中使用s/\n//是无法删除**最后一行**的'\n'的. sed中用N指令读取多行再替换'\n'同样无法解决**最后一行**的'\n'问题. |
17
anuxs 2012-03-27 21:22:36 +08:00
有一批文件?
写个脚本,把所有行串成一串字符就行了。跳出常规思维吧,别想着“去掉”,同志们。 |
18
013231 OP |
19
Muninn 2012-03-27 21:49:13 +08:00
抱歉 看错了.
|
20
Muninn 2012-03-27 22:03:57 +08:00
vi的话
G k J x 可以... 不然想要判断出文件末尾的属性,我估计只能用python和perl了 |
21
lululau 2012-03-27 22:07:24 +08:00
如果知道下一步怎么做的话,这样“gawk -v ORS='' 1 filename”做是最简单的
这个方式“find dir -exec perl -pe -i 's#\n$##' {} \;” 是完整的命令 |
22
david_lee_cn 2012-03-27 22:47:47 +08:00 via iPad
|
23
powerx1202 2012-03-27 23:19:42 +08:00
\n$ 匹配最后的换行
|
24
powerx1202 2012-03-27 23:31:11 +08:00
没看清楚,sorry。。
|
25
lululau 2012-03-27 23:33:14 +08:00
我就不信一行命令还搞不定了 :)
Mac: find . -type f -exec bash -c 'tail -c 1 {} | wc -l | grep -q 1 && dd if=/dev/null of=h seek=$(($(stat -f%z {})-1)) bs=1 count=1' \; Linux: find . -type f -exec bash -c 'tail -c 1 {} | wc -l | grep -q 1 && dd if=/dev/null of=h seek=$(($(stat -c%s {})-1)) bs=1 count=1' \; |
26
lululau 2012-03-27 23:38:21 +08:00
判断最后一个字符是否是换行符,不知道有没有更好的方法。。。
|
27
RustingSword 2012-03-27 23:57:16 +08:00
嗯,我想得也太简单了,昨天试了几次,效果都不怎么好……
|
28
kojp 2012-03-28 10:40:28 +08:00
好吧,我用python小试一下~~~
|
29
kojp 2012-03-28 11:07:54 +08:00
交作业~~~求拍砖
f= open("./some.txt", "r") fstr=f.read() newstr=fstr[len(fstr)-1:] res=fstr[0:len(fstr)-1]+newstr.replace("\n", "nothing")#nothing can be "" f= open("./somenew.txt", "w") print>>f,res |
30
skywinger 2012-03-28 11:13:36 +08:00
很简单的啊,在mac osx 或是linux的命令行环境下输入:
dos2unix ...(文件名称) |
31
lackrp 2012-03-28 14:58:28 +08:00
|
32
erabbit 2020-02-13 21:53:26 +08:00
javascript:
a.replace(/\n$/,'') |