【发布时间】:2015-01-06 11:12:12
【问题描述】:
我手头有一个包含 690 个条目的文本文件,类似于 P.S. (在 P.S. 中显示的是一个示例,来自这里 http://www.ncbi.nlm.nih.gov/nuccore/AB753792.1)。在我的文本文件中,条目由“//”分隔。
就我而言,在“ACCESSION”(字符串和 3 个空格)之后没有大写字母数字字符串 (例如 P.S. 中的“AB753792”)。我正在使用默认 Bash 运行 MacOSX Yosemite,并希望使用唯一的大写字母数字字符串填充 690 个空格,例如:
openssl rand -hex 4 | tr '[:lower:]' '[:upper:]'
(5.1.15: 上面的命令我改了,在本帖的第一个版本不一样)
我可以看到 sed / awk 如何解决这个问题,但我不知道 sed 如何能够在每个“ACCESSION”之后插入一个唯一的 8 位大写字母数字字符串。
我很乐意得到帮助。
亲切的问候,
保罗
附言
LOCUS AB753792 712 bp DNA linear INV 26-JUN-2013
DEFINITION Acutuncus antarcticus mitochondrial gene for cytochrome c oxidase
subunit 1, partial cds.
ACCESSION AB753792
VERSION AB753792.1 GI:478246768
KEYWORDS .
SOURCE mitochondrion Acutuncus antarcticus
ORGANISM Acutuncus antarcticus
Eukaryota; Metazoa; Ecdysozoa; Tardigrada; Eutardigrada; Parachela;
Hypsibiidae; Acutuncus.
REFERENCE 1
AUTHORS Kagoshima,H., Imura,S. and Suzuki,A.C.
TITLE Molecular and morphological analysis of an Antarctic tardigrade,
Acutuncus antarcticus
JOURNAL J. Limnol. 72 (s1), 15-23 (2013)
REFERENCE 2 (bases 1 to 712)
AUTHORS Kagoshima,H. and Suzuki,A.C.
TITLE Direct Submission
JOURNAL Submitted (07-OCT-2012) Contact:Hiroshi Kagoshima Transdisciplinary
Research Integration Center/Nationlal Institute of Genetics; 1111
Yata, Mishima, Shizuoka 411-8540, Japan
FEATURES Location/Qualifiers
source 1..712
/organism="Acutuncus antarcticus"
/organelle="mitochondrion"
/mol_type="genomic DNA"
/isolation_source="moss sample (Bryum pseudotriquetrum,
Bryum argenteum, and Ceratodon purpureus)"
/db_xref="taxon:467037"
/country="Antarctica: East antarctica, soya coast,
Skarvsnes and Langhovde"
CDS <1..712
/codon_start=2
/transl_table=5
/product="cytochrome c oxidase subunit 1"
/protein_id="BAN14781.1"
/db_xref="GI:478246769"
/translation="GQQNHKDIGTLYFIFGVWAATVGTSLSMIIRSELSQPGSLFSDE
QLYNVTVTSHAFVMIFFFVMPILIGGFGNWLVPLMISAPDMAFPRMNNLSFWLLPPSF
MLITMSSMAEQGAGTGWTVYPPLAHYFAHSGPAVDLTIFSLHVAGASSILGAVNFIST
IMNMRAPSISLEQMPLFVWSVLLTAILLLLALPVLAGAITMLLLDRNFNTSFFDPAGG
GDPILYQHLFWFFGHPEV"
ORIGIN
1 tggtcaacaa aatcataaag atattggtac actttatttt atttttggag tatgagctgc
61 tacagtagga acatctctta gtatgattat ccggtcagaa cttagacaac caggatcact
121 cttctcagat gaacaacttt acaacgttac agtaacaaga catgcatttg tcataatttt
181 cttttttgta atacccatcc ttattggagg atttggaaat tgactagtac ctttaatgat
241 ttcagcacca gatatagctt tcccccgaat aaataacctg agattctgac tactaccccc
301 atcttttata ttaattacta taagaagtat agcagaacaa ggagccggga cagggtgaac
361 agtttacccc cctttagctc actattttgc acactcagga ccagctgtcg atttaactat
421 tttttctctg catgtagcag gagcatcgtc gattttagga gccgtaaact tcatttctac
481 aattatgaat atgcgagctc catcaattag tttagaacaa atgccactat ttgtatgatc
541 agtactactt acagccattt tacttctact agctctgcca gtattagcag gagccatcac
601 aatgctttta ttagaccgaa attttaacac atcgtttttt gatcctgctg gtgggggaga
661 tccaattctc tatcaacatt tattttgatt ttttggtcac cctgaagttt aa
//
【问题讨论】:
-
openssl rand -base64 32 | | tr '[a-z]' '[A-Z]' 给出语法错误...应该是“openssl rand -base64 32||tr '[a-z]' '[A-Z]'”?....如果是这样,这不会生成 8 位字母数字组。请告知
-
大家好,感谢您迄今为止的帮助。如前所述,我没有在原始帖子中测试用于字符串生成的命令,因为我写的帖子没有 Bash 可用。原来的命令是 openssl rand -hex 4 | tr '[:lower:]' '[:upper:]'
-
我的答案已编辑以使用修改后的命令“openssl rand -hex 4 | tr '[:lower:]' '[:upper:]'”来说明解决方案
标签: bash shell awk sed passwords