我有简单的sed命令:
#!/bin/bash
COMMAND=$1
sed -e "s#COMMAND#$COMMAND#
命令的值应该是每个命令的新行,但我无法弄清楚如何将它们分配给sed并将每个命令放在新行上。我试过的是:
./script 'ls\n date\n uname\n'
问候!
答案 0 :(得分:1)
如果我理解您的问题,您希望将字符串中的换行符表示(即反斜杠字符,后跟' n')替换为实际打印的换行符。
以下脚本采用单引号字符串(问题中显示的输入),其中包含文字' \ n'并将它们转换为实际的新行。
#!/bin/bash
echo -n $1 | sed -e 's#\\n#\n#g'
使用示例:
[user@localhost ~]$ ./simple_sed.sh 'ls\ndate\nuname\n'
ls
date
uname
您的脚本所需的更改是