Ich habe eine Textdatei mit dem Namen xid.txt
:
xid: SC48028 id: artf398444
xid: indv1000 id: indv24519
xid: SC32173 id: artf398402
xid: SC21033 id: artf398372
xid: 1001 id: tracker4868
xid: wiki1000 id: wiki10709
xid: proj1234 id: proj12556
Ich muss eine Zeichenfolge 'PT_' vor 'SC48028', 'SC32173' usw. hinzufügen. Die Zeichenfolge 'SC ...' kann mit einer beliebigen Kombination beginnen, z. B. 'AC ...' oder 'DL ..'
Erforderliche Ausgabe:
xid: PT_SC48028 id: artf398444
xid: indv1000 id: indv24519
xid: PT_SC32173 id: artf398402
xid: PT_SC21033 id: artf398372
xid: 1001 id: tracker4868
xid: wiki1000 id: wiki10709
xid: proj1234 id: proj12556
Wenn Sie die obige Ausgabe sehen, sollten wir 'PT_' nicht vor Zeichenfolgen einfügen, die mit 'i', 'p', 'w' und 'numerisch' beginnen. Ich habe einige grundlegende Befehle für meine Anforderung mit insert / append in sed ausprobiert.
text-processing
awk
sed
Subrat Sahoo
quelle
quelle
Antworten:
Mit awk :
Die Ausgabe:
$2~/^[A-Z][A-Z]/
- wenn das 2. Feld mit 2 Großbuchstaben beginntOder sed Ansatz:
quelle
awk '$2~/^[A-Z]{2}/{ $2="PT_"$2 }1' xid.txt > xid-tmp && mv xid-tmp xid.txt
oder benutze meinen zweiten Ansatzawk
(die Sie normalerweise auf Linux-Systemen installiert haben)-i inplace
ermöglichen es Ihnen, eine Datei wie sed und perl zu bearbeiten-i
.-i inplace
(ich habe einen einheitlichen Ansatz mitmv
Befehl für das OP vorgeschlagen, um die Portabilität anzupassen). Was dieBioinformatics beta
Community betrifft: Ich bin gerade beigetreten. Könnte es Aufgaben im Zusammenhang mit der Linux / Python-Programmierung / -Verarbeitung geben? Wie denkst du?sed Option
wo
-i
an Ort und Stelle bearbeiten-e
Befehl zum Ausführenquelle