我在名为 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 文件中添加 (),请告诉我如何一次高效地完成它,因为这一切都应该是自动化的。
最佳答案
这个 awk 单行代码应该做你想做的事:
awk -v q="'" '{$0=q $0 q;printf "%s%s", (NR==1?"(":","),$0}END{print ")"}' file
我声明一个 var q
有单引号 ('
),以避免许多转义。
关于bash - 列表处理,将列表转换为撇号和逗号分隔的记录,用括号括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43321210/