假设我有以下字符串:
abcdefghi
我可以使用哪个命令,结果是:
a
b
c
d
e
f
g
h
i
我刚刚开始编码,所以我希望有人可以帮助我。
答案 0 :(得分:4)
有一个名为fold
的工具可以插入换行符,你可以告诉它在每个字符后添加一个:
$ fold -w 1 <<< 'abcdefghi'
a
b
c
d
e
f
g
h
i
<<<
用于表示here string。如果你的shell不支持,你可以转而使用fold
:
echo 'abcdefghi' | fold -w 1
答案 1 :(得分:0)
您可以使用sed
,虽然它会在最后一个字母后添加一个额外的换行符,但最后会得到一个空行:
$ sed 's/./&\
/g' <<<abcdefghi
a
b
c
d
e
f
g
h
i
$
s / old / new /是sed&#34;替代&#34;命令。在旧方面,模式.
完全匹配任何字符。在 new 一侧,符号&
表示&#34;无论旧模式匹配&#34; - 我们在替换中包含了我们匹配的内容,因此我们正在添加内容,而不是删除它们。
我们希望使用换行符跟踪每个匹配的字符,但是换行符将终止sed
命令并导致语法错误,除非我们在其前面添加反斜杠。
所以我们用相同的字符(.
)替换任何字符(&
)后跟换行符(\
+换行符)。最后的g
意味着替换每一个事件,而不仅仅是每一行的第一个事件。
演示使用here-string,它是大多数现代贝壳的一部分,但不是全部;您也可以使用echo abcdefghi | sed '...'
。
答案 2 :(得分:0)
grep -o . <<< "abcdefghi"