分页: 1 / 1
shell如何实现每个字符前都加\
发表于 : 2016-01-28 21:11
由 kashu
有这么一行字符串:
代码: 全选
第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环境下如何实现?
要求:实现的代码越短越好(如果一条命令能实现最好了)。
Re: shell如何实现每个字符前都加\
发表于 : 2016-01-28 21:25
由 自由建客
Re: shell如何实现每个字符前都加\
发表于 : 2016-01-28 21:29
由 kashu
不行,这只加了一个\而已
kashu:/tmp$ echo '第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt' | sed -n 's/\(.\)/\\\1/p'
\第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt
Re: shell如何实现每个字符前都加\
发表于 : 2016-01-28 21:30
由 vickycq
代码: 全选
a="第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt"
for i in `seq 1 $((${#a} - 1))`; do b="$b${a:i:1}\\"; done
echo $
Re: shell如何实现每个字符前都加\
发表于 : 2016-01-28 21:34
由 kashu
得到的结果不对
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\ \
Re: shell如何实现每个字符前都加\
发表于 : 2016-01-28 21:37
由 vickycq
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
Re: shell如何实现每个字符前都加\
发表于 : 2016-01-28 21:39
由 kashu
抱歉,原来这样可以的,谢谢!
echo '第10话 累得像条"狗"-XMTMzMzgwNzY2OA_part1.txt' | sed -n 's/\(.\)/\\\1/gp'