2012-11-21 101 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