0
您好我已經在shell函數中包裝了一個sed命令(它是自己的)。使用函數內的sed命令調用和更改文件
#!/bin/bash
snp2fasta() {
sed -i "s/^\(.\{'$2'\}\)./\1'$3'/" $1;
}
與
$ ./snp2fasta input.txt 45 A
叫它作任何更改到INPUT.TXT
但是,如果我只是做
$ sed -i 's/^\(.\{45\}\)./\1A/' input.txt
那麼這個作品和文件被更改通過將第45個字符改爲A.
但是,當封裝到shell腳本(以處理命令行變量)時,shell腳本snp2fasta.sh運行良好,但不會對該文件進行更改。
這是爲什麼?
這將是一個逃避問題。在sed調用之前放置'set -x'來查看它實際運行的是什麼。 –
當我在sed命令前使用set -x時,我沒有得到終端的輸出 – brucezepplin
對不起@Jayesh - 犯了一個錯誤 - 我確實把文件作爲參數1並編輯後 – brucezepplin