
sed
ファイルの各行の2番目の文字を削除するコマンドを作成します。
sed -e 's/^.//' sample
上記のコマンドは最初の文字を削除します。しかし、2番目の文字だけをどのように指定しますか?
答え1
sed 's/.//2' sample
末尾はコマンドの「フラグ」です2
(時々過度に使用されます)。これは、各行で正規表現の2番目の発生にのみ置換を適用するように指示します。正規表現は(単一文字と一致)なので、各入力行から2番目の文字が削除されます。s
sed
g
sed
.
/
コマンドの最後の区切り文字の後に正の整数を使用すると、1行s
から一部の一致をスキップできます。
答え2
逆参照をサポートする場合sed
:
sed -E 's/^(.)./\1/'
答え3
あなたの具体的な状況に応じて
次のルールを使用できます
sed 's/.//2' sample
2
2番目の文字に対応します。
山の例として入力するファイル名はtest.txt
qwertyuiop
asdfghjkl
zxcvbnm
これ出力コマンドsed 's/.//2' test.txt
は
qertyuiop
adfghjkl
zcvbnm
基本ルールとして
以下を使用して、Nth
パターンの文字(つまりすべての文字)を削除できます。.
sed 's/.//N' sample