
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$/,'') |