Sed

如何組合正則表達式的 POSIX 字元類?

  • October 16, 2015

我需要在 sed 使用的正則表達式中組合不同的字元類。我需要匹配[:word:]和減號-。看起來怎麼樣?我所有的嘗試都未能嘗試或尋找解決方案。

在以下字元串中,我想匹配所有內容,直到第一個空格:

foo-bar     |
baz-xyz-123 |

POSIXly:

sed 's/[^[:alnum:]_-]//g'

將刪除目前語言環境中不是字母數字字元的所有內容,_並且-.

$ echo 'foo-bar     |' | sed -e 's/[^[:alnum:]_-]//g'
foo-bar

但是,如果您想列印所有內容,直到第一個空格:

sed -e 's/^\([^ ]*\) .*/\1/'

awk

awk '{print $1}'

引用自:https://unix.stackexchange.com/questions/224414