我在shell/bash脚本中有一个字符串.我想打印字符串,其中包含所有"特殊字符"(例如换行符,制表符等)作为文字转义序列打印(例如,打印换行符,打印\n选项卡\t,等等).
(不确定我是否使用了正确的术语;该示例应该有希望澄清事情.)
期望的......的输出
a="foo\t\tbar"
b="foo bar"
print_escape_seq "$a"
print_escape_seq "$b"
Run Code Online (Sandbox Code Playgroud)
...是:
foo\t\tbar
foo\t\tbar
Run Code Online (Sandbox Code Playgroud)
$a并且$b是从文本文件中读入的字符串.foo,并bar在$b变.这就是我尝试过的:
#!/bin/sh
print_escape_seq() {
str=$(printf "%q\n" $1)
str=${str/\/\//\/}
echo $str
}
a="foo\t\tbar"
b="foo bar"
print_escape_seq "$a"
print_escape_seq "$b"
Run Code Online (Sandbox Code Playgroud)
输出是:
foo\t\tbar
foo bar
Run Code Online (Sandbox Code Playgroud)
所以,它不起作用$b.
是否有完全直接的方法来完成这个我完全错过了?
我想用jQuery来做这个:
<ol>
<li>item a</li>
<li>item b</li>
</ol>
<ol>
<li>item c</li>
<li>item d</li>
<li>item e</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
......变成这个:
<ol>
<li><span>1</span> item a</li>
<li><span>2</span> item b</li>
</ol>
<ol>
<li><span>1</span> item c</li>
<li><span>2</span> item d</li>
<li><span>3</span> item e</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
(当页面上有多个s 时,此答案不起作用ol;数字将在ols中递增,而不是从每个人的1开始ol.)