簡體   English   中英

Bash腳本-Unix中的轉義字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM