[英]Bash scripting - escape characters in unix
我試圖在我查找所有文本文件的目錄中執行單詞搜索,並嘗試查找長度為14的單詞。
$ ls *.txt | & grep -o -w '\w\{14,14\}'
當我在命令行中運行它時,它按預期工作。
現在,我想在.sh文件中運行相同的命令
在我的文件中,我有這個:
eval $("ls *.txt | & grep -o -w '\w\{14,14\}'")
然后我得到這個錯誤:
test.sh:第1行:ls * .txt | &grep -o -w'\\ w {14,14}':找不到命令
我的文字中有轉義字符嗎? 如何獲得該文件,以便在運行.sh文件時獲得與在命令行上運行該文件時相同的輸出?
您無需eval
可以將其放入Shell腳本中。 eval
是邪惡的,應該像瘟疫一樣避免(例如,僅當您自己發明解毒劑時才使用)。 您的語句可以更改為簡單的grep -o -w '\\w\\{14,14\\}' *.txt
並將逐字記錄到腳本文件中。
Greg的Wiki是一個學習Bash腳本的基礎知識和精妙之處的優秀網站。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.