sedを使用して各行の2番目の文字を削除する

sedを使用して各行の2番目の文字を削除する

sedファイルの各行の2番目の文字を削除するコマンドを作成します。

sed -e 's/^.//' sample 

上記のコマンドは最初の文字を削除します。しかし、2番目の文字だけをどのように指定しますか?

答え1

sed 's/.//2' sample

末尾はコマンドの「フラグ」です2(時々過度に使用されます)。これは、各行で正規表現の2番目の発生にのみ置換を適用するように指示します。正規表現は(単一文字と一致)なので、各入力行から2番目の文字が削除されます。ssedgsed.

/コマンドの最後の区切り文字の後に正の整数を使用すると、1行sから一部の一致をスキップできます。

答え2

逆参照をサポートする場合sed

sed -E 's/^(.)./\1/'

答え3

あなたの具体的な状況に応じて

次のルールを使用できます

sed 's/.//2' sample

22番目の文字に対応します。

山の例として入力するファイル名はtest.txt

qwertyuiop
asdfghjkl
zxcvbnm

これ出力コマンドsed 's/.//2' test.txt

qertyuiop
adfghjkl
zcvbnm

基本ルールとして

以下を使用して、Nthパターンの文字(つまりすべての文字)を削除できます。.

sed 's/.//N' sample

関連情報