【发布时间】:2017-10-03 05:23:43
【问题描述】:
假设我有以下字符串:
abcdefghi
我可以使用哪个命令,结果是:
a
b
c
d
e
f
g
h
i
我刚开始编码,希望有人能帮助我。
【问题讨论】:
假设我有以下字符串:
abcdefghi
我可以使用哪个命令,结果是:
a
b
c
d
e
f
g
h
i
我刚开始编码,希望有人能帮助我。
【问题讨论】:
有一个叫做fold的工具可以插入换行符,你可以告诉它在每个字符后添加一个:
$ fold -w 1 <<< 'abcdefghi'
a
b
c
d
e
f
g
h
i
<<< 用于表示here string。如果你的 shell 不支持,你可以通过管道传递给fold:
echo 'abcdefghi' | fold -w 1
【讨论】:
你可以使用sed,虽然它会在最后一个字母之后添加一个额外的换行符,所以你会在最后得到一个空行:
$ sed 's/./&\
/g' <<<abcdefghi
a
b
c
d
e
f
g
h
i
$
s/old/new/ 是 sed “替代”命令。在 old 方面,. 模式完全匹配任何字符。在 new 方面,符号 & 表示“无论 old 模式匹配什么” - 我们将匹配的内容包含在替换中,因此我们是在添加内容,而不是删除它们.
我们想在每个匹配的字符后面加上一个换行符,但是换行符会终止sed 命令并导致语法错误,除非我们在它前面加上反斜杠。
所以我们用相同的字符 (&) 替换任何字符 (.),后跟换行符 (\ + 换行符)。末尾的g 表示替换每一个匹配项,而不仅仅是每行的第一个匹配项。
演示使用here-string,它是大多数现代shell的一部分,但不是全部;你也可以使用echo abcdefghi | sed '...'。
【讨论】:
grep -o . <<< "abcdefghi"
【讨论】: