Sed 如何在特定登录bash后删除部分文本

Sed 如何在特定登录bash后删除部分文本,sed,Sed,我有一个.txt文件,其中包含以下数据: user-5 user-10 user-12 user-23(some text) user-11@dsa.dsd user-23-sometext 我只想留下用户编号。因此,我必须删除@,)和第二个-之后的文本 我正在尝试使用sed命令,已成功使用@和)。如何删除第二个-之后的文本? 我的代码:sed's/[)|@].//g' sed 's|\(user-[0-9]*\).*|\1|' 通过这种方式,您不需要包含所有可能终止用户号码匹配的字符。gr

我有一个.txt文件,其中包含以下数据:

user-5
user-10
user-12
user-23(some text)
user-11@dsa.dsd
user-23-sometext
我只想留下
用户编号
。因此,我必须删除
@
和第二个
-
之后的文本

我正在尝试使用sed命令,已成功使用
@
。如何删除第二个
-
之后的文本? 我的代码:
sed's/[)|@].//g'

sed 's|\(user-[0-9]*\).*|\1|'

通过这种方式,您不需要包含所有可能终止用户号码匹配的字符。

grep-o'^[^-]*-[0-9]*'文件
?使用GNU awk:
awk'NF=2'FS='[(@-]'文件