Hobby Lab 趣味のモノ作り実験のサイトです。
Software OS RaspberryPi sed
1.命令の書き方
(1)オプション名
(2)命令名
(3)記載例

Sf:OS関係
SfO:Mint 関係
 PCへMint導入
 アプリ導入
 その他1
 アイコンを作る
SfO:Ubuntu 関係
 PCへUbuntu導入
 アプリ導入
SfO:RaspberryPi 関係
はじめに
 RaspberryPiへOS導入
 アプリ導入
 Programming
シェル・コマンド関係
 LXTerminal
 sed
 i2ctools
I/O・アプリ関係
 RealVNCとViewer
 IO動作確認
 MySQL
 Python
 raspberrypiハード
Sf:Server 関係
SfS:レンタルサーバー
 CORE-X
SfS:Windowsサーバー
 XAMPPの概要と導入
 Note XAMPP
 Note XAMPP Err
 Note Apache
 Note PHP
 Note MyQSL
Sf:Programming関係
C 関係
 C言語でプログラムミング
Python 関係
はじめに
 RaspberryPi開始
 Windows開始
共通事項
 プログラミングNote
 パッケージ導入 pip
 標準ライブラリ
 Serialライブラリ
 SMBusライブラリ
HTML関係
 開始とNote
Sf:IDE 開発環境
SfI:STM32
 STM32CubeIDEでプログラム
 HALと直接レジスター操作の速度
SfI:CH32
 MounRiver Studioでプログラム
SfI:Arduino
各ボード毎の設定
 Uno 設定
 Mega2560 設定
 DUE_CH340 設定
 ESP_WROOM02 設定
 ESP12F_D1mini 設定
 ESP32 設定
 CH32V 設定
ライブラリー
 OneWire使い方
その他
 日本語リファレンス(外部リンク)
 WiFi Macアドレスを調査
Sf:AP アプリ関係
SfA:エディタ
SfA:回路図CAD
SfA:回路シミュレータ
 シミュレーションの設定
 色の設定
 電源設定設定
SfA:リモートソフト
Sf:Pt プロトコル関係
SfPt:MODBUS
Sf:Otgers その他

1.命令の書き方

 sed[オプション]'命令'[入力ファイル]

命令には置換、削除、挿入 などの編集操作を指定します。
入力ファイルが指定されない場合、標準入力から読み込みます

標準入力: プログラムの標準的な入力。通常はキーボードが使用される。
標準出力: 通常はディスプレーが使用される。
標準エラー出力: エラーメッセージを表示するための出力で、ディスプレーが使用される。
 

(1)オプション名

オプション名 説   明
-e 複数のスクリプトを指定する場合に使用 sed -e ‘s/foo/bar/’ -e ‘s/baz/qux/’
-f スクリプトファイルを指定して実行 sed -f testS.sed test.txt
-i 編集結果を直接ファイルに上書き sed -i ‘s/foo/bar/’ test.txt
-I 拡張子を指定して、バックアップを作成しながら編集 sed -i.bak ‘s/foo/bar/’ test.txt
-n デフォルトで出力を抑制し、pオプションで指定した行のみ表示 sed -n ‘s/foo/bar/p’ test.txt
-r 拡張正規表現を使用 sed -r ‘s/(foo
-E -rオプションと同様、拡張正規表現を使用 sed -E ‘s/(foo
-s 複数のファイルを入力として受け取り、それぞれに対して処理 sed -s ‘s/foo/bar/’ test.txt test2.txt
-u 出力をバッファリングせず、アンバッファードモードで実行 sed -u ‘s/foo/bar/’ test.txt
-z データを行単位ではなく、NULL区切りで処理 sed -z ‘s/foo/bar/’ test.txt

 

(2)命令名

説    明 構   文
文字列の置換 s/検索パターン/置換パターン/[フラグ]
行の削除 /検索パターン/d
行の挿入 /検索パターン/i\挿入テキスト
行の追加 /検索パターン/a\追加テキスト
行の変更 /検索パターン/c\変更テキスト
行のプリント /検索パターン/p
行のプリント抑制 /検索パターン/n
行のプリント・次行読込 /検索パターン/N
ホールドバッファへのコピー /検索パターン/h
ホールドバッファへの追加 /検索パターン/H
ホールドバッファの内容をパターンスペースにコピー /検索パターン/g
ホールドバッファの内容をパターンスペースに追加 /検索パターン/G
パターンスペースの内容をホールドバッファに交換 /検索パターン/x
パターンスペースの内容を削除して次行読込 /検索パターン/D
ブランチ /検索パターン/b[ラベル]
テストとブランチ /検索パターン/t[ラベル]
ラベル :ラベル
次のコマンドにスキップ #
行の表示(制御文字を可視化) /検索パターン/l
パターンスペースの内容を削除して終了 /検索パターン/q

 

(3)記載例

下記内容のtest.txtの内容を変更します。
start
out
false
01234
true
Orange

a.ファイルの文字列"true"を"false"に置換ます。
tryday@tryday:~ $ sed 's/true/false/' test.txt
start
out
false
01234
false
Orange

b.ファイルの文字列"out"を含む行を削除します。
tryday@tryday:~ $ sed '/out/d' test.txt
start
false
01234
true
Orange

c.ファイルの文字列"false"を含む行の前に"end"を挿入します。
tryday@tryday:~ $ sed '/false/i\end/' test.txt
start
end
false
01234
true
Orange

d.ファイルの文字列"false"を含む行の後に"end"を追加します。
tryday@tryday:~ $ sed 's/false/a\end/' test.txt
start
false
end
01234
true
Orange

e.複数の命令を実行
"start" を "set" に置換し、"faise"を含む行を削除します。
tryday@tryday:~ $ sed -e 's/start/set/' -e '/false/d' test.txt
set
end
01234
true
Orange

f.正規表現
数字を”NUM"に置換る
tryday@tryday:~ $ sed 's/[0-9]\+/NUM/' test.txt
set
end
NUM
true
Orange

g.ファイルの一括置換
複数のファイル内の “Orange” を “Raspberry” に置換します。
予め test1.txt teset2 に文字 Orangeをいれて保存しておく
tryday@tryday:~ $ sed -i 's/apple/orange/' test.txt test1.txt teset2.txt
set
end
NUM
true
Raspberry

h.コマンドの連携
grepで “Raspberry” を含む行を抽出し、その後 sedで “Raspberry” を “Orange” に置換します。
tryday@tryday:~ $ sed 'Raspberry' test.txt | sed 's/Raspberry/Orange/'
set
end
NUM
>true
Orange

i.スクリプトスクリプトファイルを利用した処理
予め testS.sed を利用し test.txtを処理する
tryday@tryday:~ $ sed -f testS.sed test.txt


更新日 2025/11/25 19:36  管理者 平林 剛Hirabayashi Takeshi