2012-11-21 102 views
2

shell脚本中是否有任何与tcl中的“list”类似的命令?我想写一个元素列表到一个文件中(每行都是分开的)。但是,如果元素匹配一个特定的模式,那么它旁边的元素和元素本身应该打印在同一行中。在shell脚本中是否有任何命令执行此操作?Shell脚本打印元素列表

例如:我的字符串就像是“执行命令运行abcd.v” 我想在文件的单独行中写入每个单词,但如果单词是“运行”,则abcd.v和运行必须打印在同一条线。所以,输出应该是这样的,

execute 
the 
command 
run abcd.v 

如何在shell脚本中做到这一点?

回答

0

这里是你如何能做到这在bash:

  • 名称这下面的脚本为list
  • 将其设置为可执行
  • 它复制到你的​​:

List:

#!/bin/bash 
# list 

while [[ -n "$1" ]] 
do 
    if [[ "$1" == "run" ]]; then 
     echo "$1 $2" 
    else 
     echo "$1" 
    fi 
    shift 
done 

这就是你如何使用它的命令提示符下:

list execute the command run abcd.v > outputfile.txt 

而且你outputfile.txt将被写成:

execute 
the 
command 
run abcd.v 
0

你可以通过使用下面的脚本完成它。这不会是一个单一的命令。下面是一个for循环,它有一个if语句来检查关键字run。它不会追加新的行字符(echo -n)。

for i in `echo "execute the command run abcd.v"` 
do 
    if [ $i = "run" ] ; then 
    echo -n "$i " >> fileOutput 
    else 
    echo $i >> fileOutput 
    fi 
done