Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Ringkaskan penggunaan arahan sed dalam Linux

Ringkaskan penggunaan arahan sed dalam Linux

藏色散人
藏色散人ke hadapan
2021-11-15 15:55:002540semak imbas

Ringkasan cara menggunakan arahan sed dalam linux

Arahan Sed dalam linux:

1 Pengenalan pertama kepada sed

Editor sed dipanggil editor aliran Ia berbeza daripada editor teks interaktif seperti vim Ia memproses data dalam aliran data mengikut arahan. Operasi berikut akan dilakukan:

  • Baca satu baris data daripada input pada satu masa (ulang operasi ini sehingga semua baris telah dibaca)

  • Menurut data padanan arahan Editor

  • Ubah suai data dalam aliran data mengikut arahan

  • Output data baharu kepada STDOUT (output standard)

Arahan sed boleh dimasukkan daripada baris arahan atau dibaca daripada fail arahan.

sed -e script 添加script中指定的命令
sed -f file 添加file中指定的命令

1.1 Tentukan arahan sed pada baris arahan [Pembelajaran yang disyorkan: tutorial video linux]

Mari kita lihat contoh penggantian teks ringkas:

echo "hi,my name is xxx" | sed 's/xxx/kinsomy/'
#修改文件
sed 's/xxx/kinsomy/' data.txt
#执行多个命令 用-e选项,分号隔开
sed 's/xxx/kinsomy/; s/***/hhh/' data.txt

Masukkan data output gema ke dalam sed melalui saluran paip, dan kemudian gunakan arahan s untuk menggantikannya, menggantikan data padanan selepas garis miring pertama dengan data selepas garis miring kedua.

Nota: sed mengendalikan data dalam fail teks dan hanya mengeluarkan data yang diubah suai kepada STDOUT, tetapi tidak mengubah suai data fail itu sendiri

1.2 Baca arahan daripada fail

Tentukan satu siri arahan dalam skrip fail.sed untuk kegunaan semula yang mudah.

s/*/a
s/x/b
s/-/+

# -f选项指定命令文件
sed -f script.sed data.txt

Asas 2 sed

2.1 Teg gantian

Contoh di atas bergema "hai, nama saya xxx" | 's/xxx/kinsomy/' hanya akan menggantikan data dipadankan pertama dalam setiap baris, tetapi jika terdapat berbilang padanan dalam baris data, kesemuanya tidak boleh diganti.

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/'
#输出
hi,my name is kinsomy, i am xxx

Pada masa ini, anda boleh menggunakan beberapa bendera penggantian untuk menetapkan mod penggantian. Token gantian mengikut rentetan gantian.

s/pattern/replacement/flags

Nombor, yang menunjukkan data yang sepadan akan digantikan

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/2'
#输出 第二个xxx被替换成kinsomy
hi,my name is xxx, i am kinsomy

g, menunjukkan penggantian semua data yang dipadankan

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/g'
#输出 第二个xxx被替换成kinsomy
hi,my name is kinsomy, i am kinsomy

p, bermakna bahawa. baris yang dipadankan akan dicetak

echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/p'
#输出
hi,my name is kinsomy, i am xxx
hi,my name is kinsomy, i am xxx
w,将替换后输出保存到指定文件
echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/w output.txt'

2.3 Pengalamatan baris

Seperti yang dinyatakan di atas, arahan sed membaca teks baris demi baris , lakukan data operasi yang sepadan sehingga semua baris selesai dilalui. Jika kita ingin beroperasi pada baris tertentu pada masa ini, kita mesti menggunakan pengalamatan baris. Terdapat dua bentuk pengalamatan baris:

Borang berangka mewakili baris

# 操作单行
$ sed '2s/xxx/***/' data.txt
# 操作一定行区间[2,4]
$ sed '2,4s/xxx/***/' data.txt
# 操作某行开始到最后[2,endline]
$ sed '2,$s/xxx/***/' data.txt

Penapis mod teks

Mula-mula cari rekod kinsomy dalam /etc/passwd, Kemudian gantikan bash dengan csh. Penapis corak teks boleh menjadi sangat berkuasa apabila dipasangkan dengan ungkapan biasa.

sed '/kinsomy/s/bash/csh/' /etc/passwd

2.4 Padam baris

Gunakan perintah padam d untuk memadam teks.

# 删除所有文本
sed 'd' data.txt
# 删除单行
sed '2d' data.txt
# 删除行区间[2,3]
sed '2,3d' data.txt
# 删除行区间[2,endline]
sed '2,$d' data.txt
# 删除匹配文本aa的行
sed '/aa/d' data.txt
# 删除两个匹配文本之间的文本 匹配到1和3的行之间的文本全部被删除
sed '/1/,/3/d' data.txt

2.5 Sisipkan dan tambah teks

Sisipkan arahan i menambah baris baharu sebelum baris yang ditentukan

Tambah perintah a menambah baris baharu selepas baris yang ditentukan

# 追加
echo "Line 2" | sed 'a\
pipe quote> Line 1'
#插入
echo "Line 2" | sed 'i\
pipe quote> Line 1'

2.6 Ubah suai baris

Arahan c digunakan untuk mengubah suai baris data

# 修改第三行文本
sed '3c\
pipe quote> change line ' data.txt

2.7 Perintah penukaran

Format perintah sed ' y/inchar/outchar'

Tukar aksara dalam inchar kepada outchar aksara satu persatu

echo "This 1 is a test of 1 try." | sed 'y/123/456/'
# 输出
This 4 is a test of 4 try.

Atas ialah kandungan terperinci Ringkaskan penggunaan arahan sed dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.im. Jika ada pelanggaran, sila hubungi admin@php.cn Padam