關於Sed命令隨筆

来源:https://www.cnblogs.com/ajajroom/p/18062577
-Advertisement-
Play Games

1.Sed 工作流程 首先sed把當前正在處理的行保存在一個臨時緩存區中(也稱為模式空間),然後處理臨時緩衝區中的 行,完成後把該行發送到屏幕上。 sed把每一行都存在臨時緩衝區中,對這個副本進行編輯,所以不會修改原文件。 Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操作;編寫轉換程式等。 ...


1.Sed 工作流程

  • 首先sed把當前正在處理的行保存在一個臨時緩存區中(也稱為模式空間),然後處理臨時緩衝區中的
    行,完成後把該行發送到屏幕上。
  • sed把每一行都存在臨時緩衝區中,對這個副本進行編輯,所以不會修改原文件。
  • Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操作;編寫轉換程式等。

2. Sed使用方法

sed常見的語法格式有兩種,一種叫命令行模式, 另一種叫腳本模式。

2.1 命令行格式

格式

sed [option] 'sed的命令|地址定位' filename
說明: 引用shell script 中的變數應使用雙引號,而非通常使用的單引號
option:
-e 進行多項編輯,即對輸入行應用多條sed命令時使用
-n 取消預設的輸出
-f 指定sed腳本的文件名
-r 使用擴展正則表達式
-i inplace,原地編輯(修改源文件)

常用命令和選項

p 列印行
d 刪除行
i\ 在當前行之前插入文本。多行時除最後一行外,每行末尾需用”\“續行 
a\ 在當前行後添加一行或多行。多行時除最後一行外,每行末尾需用“\”續行
c\ 用此符號後的新文本替換當前行中的文本。多行時除最後一行外,每行末尾需用”\“續行整行替換 
r 從文件中讀取輸入行
w 將所選行寫入文件
s 用一個字元串替換另一個
g 在行內進行全局替換
& 保持查找串以便在替換中引用
= 列印行號

2.2 腳本格式

用法

#sed -f scirpts.sed file	使用腳本處理文件
#建議使用	./sed.sh file
#!/bin/sed -f

註意事項

腳本文件是一個sed的命令行清單。commands 
在每行的末尾不能有任何空格、製表符(tab)或其它文本。 
如果在一行中有多個命令,應該用分號分隔。 
不需要且不可用引號保護命令 
#號開頭的行為註釋 

Sed 實驗

實驗內容

根據IP自動更改主機名並自動安裝vsftpd服務並完成相應配置
1.不支持本地用戶登錄
2.匿名用戶可以上傳新建刪除
3.匿名用戶限速500KBps
#!/bin/bash
#獲取IP地址
ip=`ip a | grep -Eo 'inet .* brd' | grep -Eo '[0-9]{1,3}.*\.[0-9]{1,3}'`
ip_end=`echo $ip | sed -E 's/^.*\.//g'`
name="server${ip_end}.itcast.cc"
hostnamectl set-hostname $name
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/=enforcing/=permissive/g' /etc/selinux/config
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
sed -i 's/local_enable=YES/local_enable=NO/g' /etc/vsftpd/vsftpd.conf
sed -i 's/#anon_upload_enable=YES/anon_upload_enable=YES/g' /etc/vsftpd/vsftpd.conf
sed -i 's/#anon_mkdir_write_enable=YES/anon_mkdir_write_enable=YES/g' /etc/vsftpd/vsftpd.conf
sed -i '$a anon_max_rate=500000' /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 查看防火牆狀態:active (running) 即是開啟狀態 systemctl status firewalld 2. 如果不是顯示 active 狀態,需要打開防火牆 # 啟動 systemctl start firewalld # 查看狀態 systemctl status firew ...
  • 1、準備材料 正點原子stm32f407探索者開發板V2.4 STM32CubeMX軟體(Version 6.10.0) Keil µVision5 IDE(MDK-Arm) 野火DAP模擬器 2、學習目標 瞭解 FreeRTOS 相關知識,並熟悉使用 STM32CubeMX 軟體配置 FreeRT ...
  • 前幾天遇到一個使用情景,需要從一個包含各個讀取代碼文件路徑及名字的文件中把文件路徑提取出來,做一個filelist,這裡用到了文本的提取和替換,這裡做個小總結記錄一下。 從網上找了一個作者寫的代碼用來練習。 module asyn_fifo #( //parameter declaration pa ...
  • 痞子衡嵌入式半月刊: 第 94 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
  • 蓬萊enclave-spmp 編譯和運行說明 蓬萊是一個RISC-V TEE系統,其設計具有安全性,高性能和可擴展性。基於PMP的OpenSBI版本的蓬萊Enclave使用可以參考下文,具體倉庫地址為:https://github.com/Penglai-Enclave/Penglai-Enclav ...
  • 一.找回root密碼 找到以““Linux16”開頭內容所在的行數”,在行的最後面輸入:init=/bin/sh 輸完紅色命令後 Ctrl + X 命令 接下來在游標閃爍處,輸入指令:mount -o remount,rw /(註意:各個單詞間有空格) 游標閃爍的位置中,輸入passwd,輸入一次密 ...
  • iptables是Linux系統上用於配置網路包過濾規則的工具,它使用表(tables)和鏈(chains)來組織規則。以下是iptables中的五表五鏈及其對應的實例說明: 五表 filter表:預設表,用於過濾數據包,允許或拒絕數據包通過。它包含INPUT、OUTPUT和FORWARD三個鏈。 ...
  • 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是不清i.MXRTxxx里FLEXSPI_MCR0寄存器保留位會造成IP CMD讀寫異常。 痞子衡曾經寫過一篇文章 《改動i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能會造成系統異常》,這篇文章提出了一個觀點,即對於 MCU ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...