在Bash或命令行中打印“ - ”x20的perl的等价物
在perl中,你可以简单地写打印“ - ”x 20,并且你得到一条破折号的行......但是我需要在bash/commandline中的相同的东西没有Perl的Linux /(克)awk等任何想法?其目的是在find命令的-exec使用它,我想避免使用简单的回声“---------” ......在Bash或命令行中打印“ - ”x20的perl的等价物
你可以创建你自己的功能
customprint(){
num=$1
symbol=$2
for((i=1;i<=$num;i++));do printf "%s" $symbol; done
}
customprint 20 "-"
或
customprint(){
num=$1
symbol=$2
a=$(printf "%0${num}s")
echo ${a// /$symbol}
}
customprint 20 "-"
或
num=20
eval printf '%.0s-' {1..$num}
所以我要更短一点的解决方案
下将产生60个破折号...行无功能...
echo ={1..60} | sed "s/[0-9]* \?//g"
在你的问题中,你说没有使用Perl/awk,所以现在你用的是sed? – ghostdog74 2010-04-20 11:10:39
这是短的,没有使用外部工具:'eval printf'%.0s-'{1 .. $ num}' – ghostdog74 2010-04-20 11:27:29
是的,你是对的。你的建议比我的更冷。谢谢。 – khmarbaise 2010-04-20 11:29:41
+1,好一个... – codaddict 2010-04-20 09:42:13
难道不应该是'回声$ {//一个0/$符号}'? – 2010-04-20 10:24:22
不,“%0 s”给你空白。只有当你使用“%0 d”它会给你带领的0's –
ghostdog74
2010-04-20 10:45:03