我想删除两个字符之间的文本(空格字符和K之间) 输入字符串是
VMDJBJ 4G 15K300GB 7_34KDRV 345KUPG
预期输出为:
VMDJBJ 4G 300GB DRV UPG
我使用下面的sed命令并将VMDJBJUPG作为输出。
echo $'VMDJBJ 4G 15K300GB 7_34KDRV 345KUPG'| sed 's/[[:space:]].*K//'
VMDJBJUPG
专家可以在这帮助我吗?
答案 0 :(得分:2)
使用此:
echo 'VMDJBJ 4G 15K300GB 7_34KDRV 345KUPG' |
sed -E 's/[^[:space:]]+K//g'
或
echo 'VMDJBJ 4G 15K300GB 7_34KDRV 345KUPG' |
sed -E 's/[^[:blank:]]+K//g'
输出:
VMDJBJ 4G 300GB DRV UPG
$ man gawk | grep -E '\[:blank:\]|\[:space:\]'
[:blank:]空格或制表符。
[:space:]空格字符(例如空格,制表符和换页符,仅举几例)。
[^]
表示除字符类 答案 1 :(得分:2)
现在也在这里添加awk
解决方案。
echo 'VMDJBJ 4G 15K300GB 7_34KDRV 345KUPG' | awk '{for(i=1;i<=NF;i++){sub(/.*K/,"",$i)}} 1'