$ sed -e 's/|/","/g' -e 's/=/"="/g' -e 's/\t/\t"/' -e 's/$/"/' input.txt
Это будет:
|
на,
=
на"="
\t"
"
и конец строки Самый простой способ с awk
— перейти на разделители полей:
$ awk -v FS="|" -v OFS='","' '{$1=$1}1' \
| awk -v FS="=" -v OFS='"="' '{$1=$1}1'\
| awk -v FS="\t" '{print $1,"\""$2"\""}' input.txt
Попробуйте это с помощью GNU sed:
$ sed 's/\([a-z]\+\)\([A-Z]\)/\1\n\2/g' text.txt
Для вашего ввода это дает:
s Apart
CD Compact Disc
CD-ROM Compact Disc-Read-Only Memory
CD-RW Compact Disc-Rewritable
CDFS Compact Disc File System
CERT Computer Emergency Response Team
CFS Central File System, Common File System, or Command File System
ACRONYM SPELLED OUTCGA Computer Graphics and Applications
CIDR Classless Inter-Domain Routing
CIFS Common Internet File System
CMOS Complementary Metal-Oxide Semiconductor
CNR Communications and Networking Riser
COMx Communication port (x=port number)CPU Central Processing Unit
CRT Cathode-Ray Tube
Daa
S Data as a Service
DAC Discretionary Access Control
DB-25 Serial Communications D-Shell Connector, 25 pins
DB-9 Serial Communications D-Shell Connector, 9 pins
DBaa
S Database as a Service DC Direct Current
DDo
S Distributed Denial of Service
DDR Double Data Rate
DDR RAM Double Data Rate Random Access Memory
DFS Distributed File System
DHCP Dynamic Host Configuration Protocol
DIMM Dual Inline Memory Module
DIN Deutsche Industrie Norm
DLT Digital Linear Tape
DLP Digital Light P
Некоторые пояснения:
Я предполагаю, что вы знаете, что такое "группа захвата", так как вы понимаете шаблон.
Строка 's/\([a-z]\+\)\([A-Z]\)/\1\n\2/g'
разбита на 4 части по символу /
.
Первая часть s
означает замену .
Вторая часть — это шаблон. Шаблон содержит две группы захвата:[a-z]\+
и [A-Z]
. Возьмите слово «DDoS» в вашем вводе для примера. первая группа захвата будет захватывать «o», а вторая группа захвата будет захватывать «S». Весь шаблон соответствует "oS".
Третья часть \1\n\2
заменит строку, соответствующую шаблону. \1
относится к первой группе захвата [a-z]\+
и в примере с «DDoS» это «o». \2
относится ко второй группе захвата [A-Z]
и в примере с DDoS это «S». \n
означает символ перевода строки. Таким образом, объединив их вместе, вы получите "o\nS", который заменит совпадающую строку "oS".
Четвертая часть g
означает глобальную . Если опущено, sed
найдет первое совпадение, выполнит подстановку и выйдет. С помощью g
sed
будет искать все совпадающие строки и выполнять замену.
Подробное описание можно найти в руководстве sed .