如何在bash中刪除一個字符(本例中爲冒號(「:」))後的所有文本?我也可以取出結腸嗎?我不知道如何。如何刪除bash中的字符後的所有文本?
回答
一個例子可能是有益的,但如果我理解正確的話,這會工作:
cut -f1 -d":"
這將轉換成「你好:世界」到「你好」。
egrep -o '^[^:]*:'
你能解釋一下怎麼解釋這個,謝謝。 – 2016-12-28 06:46:07
'egrep'是'-E'的grep。這與普通的'grep'沒有什麼不同。 '-o'指示grep僅打印與表達式匹配的行的部分。 '^'將匹配錨定到一行的開頭。 '[^:] *'匹配零個或多個不是':'字符的字符。 ':'匹配字符':'。 – cdhowie 2016-12-29 16:16:59
再次感謝 – 2016-12-30 02:35:08
在Bash(和ksh,zsh,破折號等)中,可以使用參數擴展%
這將從字符串末尾或#
刪除字符,這將從字符串的開頭刪除字符。如果您使用這些字符中的單個字符,則最小的匹配字符串將被刪除。如果你將角色翻倍,最長的將被刪除。
$ a='hello:world'
$ b=${a%:*}
$ echo "$b"
hello
$ a='hello:world:of:tomorrow'
$ echo "${a%:*}"
hello:world:of
$ echo "${a%%:*}"
hello
$ echo "${a#*:}"
world:of:tomorrow
$ echo "${a##*:}"
tomorrow
這是本機shell的字符串操作,所以不會產生額外的進程。參考[Bash參數替換](http://tldp.org/LDP/abs/html/parameter-substitution.html#PARAMSUBREF),[Bash String Manipulation](http://tldp.org/LDP/abs/html/ string-manipulation.html)和[Better Bash Scripting](http://robertmuth.blogspot.jp/2012/08/better-bash-scripting-in-15-minutes.html) – 2014-04-14 03:13:04
@denniswilliamson如何刪除2個字符在'hello:world'這樣的特定字符串通過'$ {a%:*}'變成'hello:wo'後? – 3kstc 2016-06-25 13:05:59
很好的答案,非常感謝,但是爲了只獲取'tomorrow',我們還會添加''$ {a ## *:}''= – avtomaton 2016-11-28 01:40:23
$ echo 'hello:world:again' |sed 's/:.*//'
hello
比方說你有一個路徑,在此格式的文件:
/dirA/dirB/dirC/filename.file
現在你只需要其中包括四個「/」的路徑。鍵入
$ echo "/dirA/dirB/dirC/filename.file" | cut -f1-4 -d"/"
和你的輸出就會
/dirA/dirB/dirC
使用切口的優點是,你還可以切出uppest目錄以及文件(在這個例子中),因此,如果您鍵入
$ echo "/dirA/dirB/dirC/filename.file" | cut -f1-3 -d"/"
你的輸出將
/dirA/dirB
雖然你可以從字符串的另一側做同樣的,它不會做出太大的意義在這種情況下,在
dirA/dirB/dirC
打字
$ echo "/dirA/dirB/dirC/filename.file" | cut -f2-4 -d"/"
結果在另一些情況下,最後案件也可能有所幫助。請注意,在上次輸出開始時沒有「/」。
- 1. 記事本++如何刪除字符串後的所有字符
- 2. 如何刪除python中特定字符後的所有字符?
- 3. replaceAll(「」,「」)在空格「」後刪除字符串中的所有文本?
- 4. 從Bash中的字符串中刪除所有特殊字符
- 5. 如何從BASH中的字符串中刪除所有非數字字符?
- 6. 如何從bash中的字符串中刪除一些文本?
- 7. 如何刪除MS Word中某些字符後的所有文本?
- 8. 如何刪除bash中包含未識別字符的所有文件?
- 9. 刪除「 - 」後的所有字符
- 10. 如何刪除所有的字符串
- 11. 如何刪除所有在樹枝中的特定字符後?
- 12. 如何刪除字符串後面的所有標點符號?
- 13. 如何刪除Bash中的最後一個字符?
- 14. 如何刪除第三個斜線BASH之後的字符串中的所有字符?
- 15. Tcl刪除字符串後的所有字符而不刪除字符串
- 16. 在BASH中,刪除兩組字符之間的所有內容
- 17. 如何通過python刪除文本文件中的所有字符
- 18. 如何刪除文本文件中所有行的字符23至33?
- 19. 如何刪除MSQL中特殊字符後面的文本
- 20. 如何刪除文本中的最後一個字符?
- 21. 如何刪除字符串Javascript中的所有字符?
- 22. 如何從bash中的文件中刪除字符串
- 23. 如何刪除所有字母,數字'@'和'。'從bash中的文件?
- 24. BASH:如何刪除清單中指定的所有文件?
- 25. Shell腳本:刪除字符串中的所有空格字符
- 26. 如何在特定字符後刪除字符串中的所有內容?
- 27. 如何刪除字符串中某個字符後的所有內容?
- 28. 替換字符串刪除文本中的所有內容
- 29. 刪除字符串中的數字後的所有內容
- 30. 從bash中的字符串中刪除所有特殊字符和大小寫
'cut'作品的解釋,但丹尼斯的回答更好,更靈活。有沒有人知道它是否會產生像'cut'這樣的新過程? – JoBu1324 2014-02-20 18:06:18
最好使用Bash的內置參數擴展功能,而不是生成運行諸如'basename'和'cut'之類的工具的子殼體,參見Dennis的答案 – 2016-06-14 17:32:54
'cut'可以從標準輸入讀取,所以它更好,尤其是當你有很長的時間需要處理的字符串,如文件的內容。 – Sahas 2017-04-26 08:34:30