Text-Processing
如果最後一個字母是“r”,則列印最後一個單詞
例如,如果最後一個字母是,我如何列印一行上的最後一個單詞
r
?I am reading the book I am reading the letter
結果:
letter
我使用 bash linux,問候
$ awk '/r$/ { print $NF }' file letter
這用於
awk
測試每一行是否以字元結尾r
。使用正則表達式進行測試,r$
. 僅當最後一個字元是 時,此表達式才匹配r
。如果匹配,$NF
則列印最後一個以空格分隔的欄位 ,。請注意,這假定行尾沒有尾隨空格,並且“單詞”是指由一些空格分隔的任何字元串。
使用
sed
:$ sed -e '/r$/!d' -e 's/.* //' file letter
這首先會跳過任何不以 an 結尾的行
r
(這是第一個表達式)。然後它使用替換命令刪除所有剩餘行上的所有內容,包括最後一個空格字元。然後輸出剩下的任何內容。同樣,這假定任何行上都沒有尾隨空格字元,並且“單詞”是由空格分隔的任何字元串。
使用
rev
++ (我並不是認真地建議您使用它)cut
:grep
$ rev file | cut -d ' ' -f 1 | rev | grep 'r$' letter
這使用非標準實用程序反轉每個單獨的行
rev
。然後,它使用提取第一個空格分隔的字元串cut
並將結果單詞反轉為其原始順序。然後,該實用程序用於使用熟悉的正則表達式grep
提取以 結尾的任何單詞。r