我有一个字符串变量
columns = "name string,age int,address string,dob timestamp"
我想删除数据类型。即我想删除空格和逗号之后的单词。输出应为
name,age,address,dob
答案 0 :(得分:2)
假设bash
shell和extglob
shell选项可用 - 请参阅pattern matching manual
$ columns='name string,age int,address string,dob timestamp'
$ echo "${columns// +([^,])/}"
name,age,address,dob
使用sed
$ echo "$columns" | sed 's/ [^,]*//g'
name,age,address,dob
使用awk
来处理以,
$ echo "$columns" | awk -F, -v OFS="," '{for(i=1; i<=NF; i++){split($i,n," "); $i=n[1]}} 1'
name,age,address,dob
如果所有列都包含两个以空格分隔的单词,则可以使用空格或逗号作为分隔符并过滤掉不需要的字段
$ echo "$columns" | awk -F' |,' -v OFS=',' '{print $1,$3,$5,$7}'
name,age,address,dob