我想重複字典文件中的單詞,其中每個單詞最初都是在其自己的一行中提到的。在Mac OS X上的`sed`和`awk`中捕獲文本的意外插入行爲小牛
我嘗試使用sed
和awk
命令。
sed 's/^\(.*\)$/\1\1/g' dict.txt
看來,捕獲文本插入,但沒有改變光標位置,所以輸出保持不變:
...猶太復國主義 猶太復國主義 拉鍊拉上 拉鍊 拉鍊 zipping zippy ...
另一方面,試圖用\1AAA\1
個結果:
... AAAzionist AAAzionists AAAzip AAAzipped AAAzipper AAAzippers AAAzipping AAAzippy ...
其中,對我來說,是意想不到的。
我也嘗試使用awk
命令,在幾種不同的方式如下:
awk '{ print $1, $1 }' dict.txt
或:
awk '{ print "%s %s", $1, $1 }' dict.txt
,其中在後一種情況下,我終於可以看到複製,但在意外光標位置,偶爾會導致重複的單詞與前一個重疊:
zoologistogist
zoologistsgists
zoologyology
zoom zoom
zoomedoomed
zoomingoming
有點令人沮喪,因爲我無法理解它。你能幫我理解嗎?
另外請注意,您可以SED的/ ^。* $ /&&/',而不是進行明確的捕獲。 (我仍然包含BOL/EOL錨點,因爲如果您有編碼錯誤,*實際上並不匹配一行中的所有內容)。 – o11c 2014-09-26 21:00:58
@ o11c謝謝。我意識到我可以單獨使用'awk'編程來完成我想要的全部任務,而無需設計複雜的管道命令。我試圖按照他們的「元音內容」對英語單詞進行排序,並且可能列出一些英語語言中對我的學生來說不尋常的,最有聲望的單詞列表(作爲計算機和英語之間的聯合項目) )。我最終提出的代碼是'awk'{word = $ 1; gsub(/ [^ aeiouy] + /,「」);元音= $ 1; printf「%3d %%%s \ n」,長度(元音)/長度(單詞)* 100,單詞}'dict.txt | sort -n |尾巴-100' – 2014-09-27 08:42:28