我在一个名为Target_id_convert.txt的文件中有一个列表
70S ribosome
ALK tyrosine kinase receptor
ATP
ATP synthase
期望输出
('70S ribosome','ALK tyrosine kinase receptor','ATP','ATP synthase')
我写了这段代码
sed -e "s/'/'\\\\''/g;s/\(.*\)/'\1'/" Target_id_convert.txt > Target_id_convert1.txt
tr '\n' ',' < Target_id_convert1.txt > Target_id_convert_output.txt
然后,我必须手动编辑文件并在Target_id_convert_output.txt文件中添加(),请告诉我如何高效地一次性完成,因为这一切都应该是自动化的。
最佳答案
假设您的记录是两行分隔的,我将使用一个sed
/awk
组合框:
<file sed "/[^[:blank:]]/ s/.*/'&'/g" |
awk '{ $1=$1; print "(" $0 ")" }' RS= FS='\n' OFS=,
如果输入是:
70S ribosome
ALK tyrosine kinase receptor
ATP
ATP synthase
70S ribosome
ALK tyrosine kinase receptor
ATP
ATP synthase
输出为:
('70S ribosome','ALK tyrosine kinase receptor','ATP','ATP synthase')
('70S ribosome','ALK tyrosine kinase receptor','ATP','ATP synthase')
关于bash - 列表处理,将列表转换为撇号和逗号分隔的记录,并用方括号括起来,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43321210/