sed -i '1d'は何をしますか?

sed -i '1d'は何をしますか?

私はこれがsedテキストファイルを操作するコマンドであることを知っています。

私のインターネット検索によると、これは-iファイル自体に対して作業を行うことを意味するようです。これは正しいですか?

何について'1d'

答え1

存在するsed

  • -iオプションは入力ファイルをその場で編集します

  • '1d'入力ファイルの最初の行を削除します

例:

% cat file.txt 
foo
bar

% sed -i '1d' file.txt 

% cat file.txt        
bar

ほとんどの場合、-iこのオプションを使用するときに予期しない変更がある場合は、元のファイルをバックアップできるようにバックアップを作成するのが最善です。

たとえば、次のような場合:

sed -i.orig '1d' file.txt 

元のファイルはそのまま保持され、file.txt.orig変更されたファイルはfile.txt

答え2

1.a)

sed '1d' file.txt

印刷file.txt内容最初の行は除外されます。標準出力として。


2.a)

sed -i    '1d' file.txt # GNU, NetBSD, OpenBSD
sed -i '' '1d' file.txt # FreeBSD, macOS

印刷file.txt内容最初の行は除外されます。戻ってfile.txt原稿を上書きします。


2.b)

sed -i.back '1d' file.txt

file.txt.back変更する前に、元のファイルのバックアップを作成してください(例:FreeBSDを除くsedサフィックス(ここ))は、オプション(同じ引数内と空白なし).backに追加する必要があります。-i-i.back


3.a)

sed '2d' file.txt

印刷file.txt内容2行目は除外されます。標準出力として。
(数値を指定するとその行は削除されます)。

ロゴとも互換性があります-i


3.b)

sed '1!d' file.txt

file.txtコンテンツ印刷すべて除外しかし、最初の行。標準出力として。
(つまり、ただ最初の行が印刷されます。)

ロゴとも互換性があります-i


3.c)

sed '$d' file.txt

file.txtコンテンツ印刷最後の行を除外してください。標準出力として。

ロゴとも互換性があります-i

答え3

そこにsed -h

  -i[SUFFIX], --in-place[=SUFFIX]
             edit files in place (makes backup if SUFFIX supplied)

そして「ファイル自体に対処してください。」これは完全に本当です。

そしてman言いました: 'Sedはストリームエディタです。ストリームエディタは、入力ストリーム(ファイルまたはパイプの入力)で基本的なテキスト変換を実行するために使用されます。

あなたの質問で、

sed -i '1d' file_name

方法:削除ファイルの最初の行の場所"file_name"であり、ファイルにバックアップされます。 (ファイルを編集して最初の行を直接削除するのと同じです。)

関連情報