mansa, amit, janani ,[rakesh]
aruna,mahesh,,prathiksha
这是我的意见。 我需要一个shell脚本或awk命令,它以下列方式提供输出
mansa
amit
janani
rakesh
aruna
mahesh
prathiksha
脚本应该删除所有的括号。
我试过这个
awk -F "\[\][,]+" '{for(i=1;i<=NF;i++){print $i}}'
但是每张唱片后都会打印一行。
答案 0 :(得分:5)
grep
更容易:
$ grep -o '[a-z]\+' file
mansa
amit
janani
rakesh
aruna
mahesh
prathiksha
答案 1 :(得分:0)
另一个选项可能是tr
:
tr -cs '[:alpha:]' '[\n*]' < file
虽然如果有前导空格会创建空行,然后可以将其过滤掉:
tr -cs '[:alpha:]' '[\n*]' < file | awk NF
答案 2 :(得分:0)
假设您只想删除方括号并从逗号分隔符中拆分项目,则可以使用以下内容:
perl -pe 's/,+/,/g ; s/[\[\]]//g ; s/\s*,\s*/\n/g' foo.txt
我建议使用此方法的原因是,您的命名值中包含数字或您可能希望保留的其他非字母字符。
上面的perl表达式包含3个正则表达式。第一部分将多个逗号缩小为一个(以避免逗号之间的空值。第二部分删除方括号。第三部分通过用换行替换逗号(左侧或右侧的空白)来拆分值。
输出如下:
mansa
amit
janani
rakesh
aruna
mahesh
prathiksha