如何在命令输出末尾添加带空格的字符串

Bab*_*yan 2 sed string whitespace

我想在ls命令输出的每一行末尾添加一个带空格的字符串。

#!/bin/sh
STRING_WITH_SPACES="this should be at the end of output"
ls -lh | sed 's|$| '$STRING_WITH_SPACES'|'
Run Code Online (Sandbox Code Playgroud)

$STRING_WITH_SPACES没有空格时,上面的脚本工作正常:

-rw-r--r-- 1 me users 0 May  4 14:55 testfile thisshouldbeattheend
Run Code Online (Sandbox Code Playgroud)

但是,当$STRING_WITH_SPACESsed 中有空格时会抱怨:

sed: -e expression #1, char 9: unterminated `s' command
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

faz*_*zie 7

STRING_WITH_SPACES="a string with spaces"
ls -l | sed "s/$/ $STRING_WITH_SPACES/"
Run Code Online (Sandbox Code Playgroud)