最後一個字段不使用sed
或awk
,只有cut
,我如何才能最後一個字段時,字段的數量是未知的或與每行改變?如何找到使用「切割」
回答
你可以嘗試這樣的事:
echo 'maps.google.com' | rev | cut -d'.' -f 1 | rev
說明
- maps.google.com的反向將
moc.elgoog.spam
cut
使用點作爲分隔符,並選擇第一場,這是moc
- 最後,我們轉erse it again(謝謝提醒,@tom)
com
使用參數擴展。這比任何外部命令cut
(或grep
)都要高效得多。
data=foo,bar,baz,qux
last=${data##*,}
請參閱BashFAQ #100瞭解bash中本地字符串操作的介紹。
這不是最有價值的答案嗎?! :-) –
@ErwinWessels:因爲bash真的很慢。使用bash運行管道,而不是批量處理數據。我的意思是,如果你已經在一個shell變量中有一行文本,或者你想'while IFS = read -ra array_var; do:; done <(cmd)'來處理幾行。但是對於一個大文件,rev | cut | rev可能更快! (當然awk會比這更快。) –
@PeterCordes,當然,對於大文件來說,awk會更快,但需要一點點輸入來克服恆定因素的啓動成本。 (還有一些shell - 比如ksh93 - 性能更接近awk,在這個答案中給出的語法仍然有效; bash特別緩慢,但它甚至不接近唯一可用的選項)。 –
如果你有一個名爲Filelist.txt中該文件是一個列表的路徑如下所示: C:/dir1/dir2/file1.h C:/dir1/dir2/dir3/file2.h
然後你可以這樣做: rev filelist.txt |剪下-d「/」-f1 | rev
這是唯一的解決辦法可能只是用普通的髮型:
回聲「s.t.r.i.n.g.」 |切「-d」。 -f2- [repeat_following_part_forever_or_until_out_of_memory:] |切「-d」。 -f2-
使用此解決方案時,字段的數量確實可能是未知數,並且會隨時變化。但是,由於行長度不得超過LINE_MAX個字符或字段(包括換行符),因此任意數量的字段不能作爲此解決方案的真實條件。
是的,一個非常愚蠢的解決方案,但唯一符合我認爲的標準。
#!/bin/bash
rcut(){
nu="$(echo $1 | cut -d"$DELIM" -f 2- )"
if [ "$nu" != "$1" ]
then
rcut "$nu"
else
echo "$nu"
fi
}
$ export DELIM=.
$ rcut a.b.c.d
d
爲了使此功能可靠且穩健地工作,您需要在'echo'參數周圍加雙引號。請參閱https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable – tripleee
沒有AWK ... 但它的使用awk這麼簡單:
echo 'maps.google.com' | awk -F. '{print $NF}'
AWK是一種更強大的工具,在你的口袋裏。 -F如果是字段分隔符 NF是字段的數量(也代表最後的索引)
- 1. 如何使用標準輸入切割
- 2. 切割輸出值:未找到命令
- 3. 如何找到分割
- 4. 如何分割或切割音頻文件使用objective-c
- 5. 用GDI切割紙(「飼料和切割」)?
- 6. 使用Matlab切割圖形
- 7. 切割使用的ffmpeg
- 8. 如何切割橢圓?
- 9. 如何 「切割」 根據DIV
- 10. 如何快速切割和切割大型數據文件?
- 11. 如何用一組索引切割割炬張量?
- 12. 使用Kruskal算法尋找圖的最小切割值
- 13. 什麼是根切割節點,橋樑切割節點,父切割節點在尋找aritculation頂點?
- 14. 如何找到分離一些節點對的整體最小切割
- 15. 如何使用接近傳感器切換割炬燈?
- 16. 如何使用Bash切割開始和結束部分?
- 17. 如何使用多邊形切割磚塊?
- 18. 如何使用awk命令切割字段?
- 19. 如何使用Excel Interop切割一系列單元格
- 20. 擊:如何使用前修剪空白切割
- 21. 如何使用ImageMagick對選擇圖像進行切割
- 22. 如何使用CSS製作圓角切割?
- 23. 如何使用linux的csplit來切割大量的XML文件?
- 24. 如何在命令行中使用正則表達式切割?
- 25. 使用python切割圖形:如何正確設置圖形?
- 26. 如何切割/使用對象的一部分作爲對象?
- 27. 使用php切割flv視頻
- 28. 切割字符串數組使用PHP
- 29. 使用飛機切割3d形狀
- 30. 使用CABasicAnimation切割查看一半
您不能。爲什麼你必須使用'cut'? – tom
看起來你正在做家庭作業問題。這裏的人熱愛幫助,但爲了在生活中取得真正的成功,你可能需要嘗試各種各樣的事情,並用已經嘗試過的證據明智地提出問題。 – zedfoxus
你是否愛上'cut'命令:)?爲什麼不使用其他Linux命令? –