我有一個變量,其值爲"abcd.txt"
。如何將sed的輸出讀入變量
我要存儲在第二個變量".txt"
之前的一切,更換".txt"
與".log"
我沒有問題,呼應所需的值:
a="abcd.txt"
echo $a | sed 's/.txt/.log/'
但如何獲取價值"abcd.log"
進入第二個變量?
感謝,
羅傑
我有一個變量,其值爲"abcd.txt"
。如何將sed的輸出讀入變量
我要存儲在第二個變量".txt"
之前的一切,更換".txt"
與".log"
我沒有問題,呼應所需的值:
a="abcd.txt"
echo $a | sed 's/.txt/.log/'
但如何獲取價值"abcd.log"
進入第二個變量?
感謝,
羅傑
您可以使用command substitution爲:
new_filename=$(echo "$a" | sed 's/.txt/.log/')
或建議不超過反引號的方式:
new_filename=`echo "$a" | sed 's/.txt/.log/'`
您可以使用反引號來分配輸出對一個變量的命令:
logfile=`echo $a | sed 's/.txt/.log/'`
這就是假設你正在使用Bash。
替代地,對於此特定問題Bash有圖案匹配構建體本身:
stem=$(textfile%%.txt)
logfile=$(stem).log
或
logfile=$(textfile/%.txt/.log)
在最後一個例子的%將確保只有最後的.txt被替換。
謝謝你的提示。 – 2010-10-25 12:41:41
,如果你有猛砸/的ksh
$ var="abcd.txt"
$ echo ${var%.txt}.log
abcd.log
$ variable=${var%.txt}.log
謝謝,但這並沒有讓我在任何地方... 我已經能夠回聲......問題是我想把它變成一個變量。 – 2010-10-25 12:14:17
如果你想把它變成變量,只需分配它?聲明和分配變量是shell腳本中非常基本的東西,我懷疑你不知道該怎麼做。 – ghostdog74 2010-10-25 12:52:15
甚至更好:'new_filename = 「$(回聲 」$ A「 | SED的/ .TXT/.LOG /')」'(Bash中對''「'裏面的命令替換仍然匹配)。 – Benoit 2010-10-25 11:29:54
「不太推薦」?也許對bash來說,但shell沒有被指定,所以它可能是唯一的選擇:-) – 2010-10-25 12:17:59
@Chris:你說的對.. – codaddict 2010-10-25 12:24:54