これがsed
テキストファイルを操作するコマンドであることを理解しています。
私のグーグルからは-i
、ファイル自体で操作を実行することを意味するようですが、これは正しいですか?
どう'1d'
?
これがsed
テキストファイルを操作するコマンドであることを理解しています。
私のグーグルからは-i
、ファイル自体で操作を実行することを意味するようですが、これは正しいですか?
どう'1d'
?
回答:
sed '1d' file.txt
file.txt
; の内容を印刷します。最初の行を除く。標準出力に。
sed -i '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS
file.txt
; の内容を印刷します。最初の行を除く。に戻るfile.txt
; オリジナルを上書きします。
sed -i.back '1d' file.txt
file.txt.back
変更を行う前に、元の(asの)バックアップを作成します。FreeBSDを除いてsed
、接尾辞(ここ.back
)は-i
オプションに添付する必要があります(同じ引数で、との間にスペースは-i
ありません.back
)。
sed '2d' file.txt
file.txt
; の内容を印刷します。2行目を除く。標準出力に。
(数字を指定すると、対応する行が削除されます)。
-i
フラグとも互換性があります。
sed '1!d' file.txt
file.txt
; の内容を印刷します。すべては除くが、最初の行。標準出力に。
(つまり、最初の行だけが印刷されます)。
-i
フラグとも互換性があります。
sed '$d' file.txt
file.txt
; の内容を印刷します。最後の行を除く。標準出力に。
-i
フラグとも互換性があります。
でsed -h
あります。
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
「ファイル自体に対して操作を実行します。」絶対です。
そしてman
言った: 'セドはストリームエディターです。ストリームエディターは、入力ストリーム(ファイルまたはパイプラインからの入力)で基本的なテキスト変換を実行するために使用されます。
あなたの質問として、
sed -i '1d' file_name
意味:所定の場所にあるファイルの最初の行を削除し、ファイル"file_name"
にバックアップします。(ファイルの編集と同様に、最初の行を直接削除します。)
-i
最初に何が起こるかを確認せずに「予行演習」を行い、-i
実際にファイルを変更するために使用することもできます。