[英]Use cut in shell to extract last word
我正在使用紅帽 linux。
我有一個文件foo.txt
讀取
Hello world I am foo
當我做cat
時,我想得到最后一個詞是foo
我嘗試在這里看到一些解釋使用 cut 命令的帖子,但它非常令人困惑。 有人可以幫我解決這個問題嗎?
我正在尋找一個類似於 go 的命令
cat foo.txt | cut <the options to get the last word /or last 3 characters>
cut
不能從右邊數。 但是您可以使用rev
反轉每一行,而不是正常從左邊數,然后將行恢復。 它仍然出奇的快。
rev foo.txt | cut -d' ' -f1 | rev
-d
指定分隔符,我猜你在計算單詞時需要空格-f
指定要提取的字段。 使用-c
提取單個字符。正如@choroba 提到的,cut 不能那樣做。
一個簡單的方法是使用awk
。
cat foo.txt | awk '{print $(NF)}'
NF
是number of fields in the current record.
所以$(NF)
將是硬道理。
使用 -n [行數] 您可以限制行數。 使用 -c 限制字符數
如果需要使用cat
,您可以嘗試以下操作:
cat foo.txt | rev | cut -d ' ' -f 1 | rev
解釋:
cat
將foo.txt
文件的 pipe 內容傳遞給rev
命令。 因此, rev
將收到:
Hello world I am foo
並將其反轉:
oof ma I dlrow olleH
然后cut
eill 提取倒置字符串的第一個單詞:
oof
這里-d ' '
表示空格字符是用於將字符串拆分為多個字段的分隔符,而-f 1
表示您正在獲取第一個字段。
最后,再次使用rev
再次反轉提取的單詞,所以你會得到:
foo
GNU grep 使用 PCRE 獲取行中最后一個空格之后的字符(如果沒有空格,則在行首之后):
grep -oP '(.*\s|^)\K.+' file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.