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

Ringkaskan penggunaan arahan sed dalam Linux

藏色散人
Lepaskan: 2021-11-15 15:55:00
ke hadapan
2545 orang telah melayarinya

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中指定的命令
Salin selepas log masuk

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
Salin selepas log masuk

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/-/+
Salin selepas log masuk

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

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
Salin selepas log masuk

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

s/pattern/replacement/flags
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk
w,将替换后输出保存到指定文件
echo "hi,my name is xxx, i am xxx" | sed 's/xxx/kinsomy/w output.txt'
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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'
Salin selepas log masuk

2.6 Ubah suai baris

Arahan c digunakan untuk mengubah suai baris data

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

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.
Salin selepas log masuk

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

Label berkaitan:
sumber:juejin.im
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan