我下面有一个字符串
属性 | 账户属性 | 动作属性 | 周年物业 | 应用属性 | AssistantName 属性 | AssistantDNA 财产 | 实验室DNA……
并且从 linux shell 想找到一个命令来将其处理为以下格式。我只想显示其中包含 DNA 的单词。对我来说,这里的重点是从提示中了解如何做到这一点。
AssistantDNA
LabDNA
awk
选择:
awk -v RS='|' '/DNA/'
echo "Properties | Account Property | Actions Property | Anniversary Property | Application Property | AssistantName Property | AssistantDNA Property | LabDNA" | tr '|' '\n' | grep DNA
印刷
AssistantDNA Property
LabDNA
首先用|
新行替换,然后使用普通的 grep。
也许是这样的:
egrep -oi '[^ ]*dna[^ ]*' file
假设您的数据位于名为/tmp/foo的文件中,您可以使用egrep或grep -E
(取决于您的系统)使用扩展正则表达式匹配您想要的单词:
egrep --only-matching --ignore-case '\b[[:alnum:]]+dna\b' /tmp/foo | sort
最后的排序管道将为您按字母顺序对结果进行排序。根据您提出的要求,这当然不是必需的。
grep -Po "\S*DNA\S*" yourFile
测试:
kent$ echo "Properties | Account Property | Actions Property | Anniversary Property | Application Property | AssistantName Property | AssistantDNA Property | LabDNA...."|grep -Po "\S*DNA\S*"
AssistantDNA
LabDNA....