当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : shell如何实现每个字符前都加\
帖子发表于 : 2016-01-28 21:11 
头像

注册: 2014-02-07 17:31
帖子: 453
系统: Xubuntu 14.04.5 64位
送出感谢: 40
接收感谢: 33
有这么一行字符串:
代码:
第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt


我想让这行字符串中每一个字符前面都加上\

效果如下:
代码:
\第\1\0\话\ \累\得\像\条\"\狗\"\-\X\M\T\M\z\M\z\g\w\N\z\Y\2\O\A\_\p\a\r\t\1\.\t\x\t


请问在shell环境下如何实现?

要求:实现的代码越短越好(如果一条命令能实现最好了)。


_________________


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ7DbSc8QDuDYX8L6Qg


页首
 用户资料  
 
2 楼 
 文章标题 : Re: shell如何实现每个字符前都加\
帖子发表于 : 2016-01-28 21:25 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
代码:
s/\(.\)/\\\1/g


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: shell如何实现每个字符前都加\
帖子发表于 : 2016-01-28 21:29 
头像

注册: 2014-02-07 17:31
帖子: 453
系统: Xubuntu 14.04.5 64位
送出感谢: 40
接收感谢: 33
自由建客 写道:
代码:
s/\(.\)/\\\1/g


不行,这只加了一个\而已
kashu:/tmp$ echo '第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt' | sed -n 's/\(.\)/\\\1/p'
\第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt


_________________


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ7DbSc8QDuDYX8L6Qg


页首
 用户资料  
 
4 楼 
 文章标题 : Re: shell如何实现每个字符前都加\
帖子发表于 : 2016-01-28 21:30 
头像

注册: 2011-03-20 13:12
帖子: 4521
地址: 山东省寿光县
系统: Debian
送出感谢: 105
接收感谢: 997
代码:
a="第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt"
for i in `seq 1 $((${#a} - 1))`; do b="$b${a:i:1}\\"; done
echo $


_________________
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户


最后由 vickycq 编辑于 2016-01-28 21:35,总共编辑了 1 次

页首
 用户资料  
 
5 楼 
 文章标题 : Re: shell如何实现每个字符前都加\
帖子发表于 : 2016-01-28 21:34 
头像

注册: 2014-02-07 17:31
帖子: 453
系统: Xubuntu 14.04.5 64位
送出感谢: 40
接收感谢: 33
得到的结果不对
kashu:/tmp$ echo $b
1\ 0\ 话\ \ 累\ 得\ 像\ 条\ 狗\ -\ X\ M\ T\ M\ z\ M\ z\ g\ w\ N\ z\ Y\ 2\ O\ A\ _\ p\ a\ r\ t\ 1\ .\ t\ x\ t\ \ 1\ 0\ 话\ \ 累\ 得\ 像\ 条\ 狗\ -\ X\ M\ T\ M\ z\ M\ z\ g\ w\ N\ z\ Y\ 2\ O\ A\ _\ p\ a\ r\ t\ 1\ .\ t\ x\ t\ \


_________________


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ7DbSc8QDuDYX8L6Qg


页首
 用户资料  
 
6 楼 
 文章标题 : Re: shell如何实现每个字符前都加\
帖子发表于 : 2016-01-28 21:37 
头像

注册: 2011-03-20 13:12
帖子: 4521
地址: 山东省寿光县
系统: Debian
送出感谢: 105
接收感谢: 997
kashu 写道:
得到的结果不对

代码:
a="第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt"
for i in `seq 0 $((${#a} - 1))`; do b="$b\\${a:i:1}"; done
echo $b

\第\1\0\话\ \累\得\像\条\狗\-\X\M\T\M\z\M\z\g\w\N\z\Y\2\O\A\_\p\a\r\t\1\.\t\x\t


_________________
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户


页首
 用户资料  
 
7 楼 
 文章标题 : Re: shell如何实现每个字符前都加\
帖子发表于 : 2016-01-28 21:39 
头像

注册: 2014-02-07 17:31
帖子: 453
系统: Xubuntu 14.04.5 64位
送出感谢: 40
接收感谢: 33
抱歉,原来这样可以的,谢谢!

echo '第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt' | sed -n 's/\(.\)/\\\1/gp'


_________________


OS: Xubuntu 14.04.5 LTS 64-bit
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 12GB DDR3 1333MHz
128GB SSD + 2TB HDD
神舟优雅A480B-I5B 购于 2012.08

YouTube频道:https://www.youtube.com/channel/UCGSPXZ7DbSc8QDuDYX8L6Qg


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译