用sed删除每行的第二个字符

用sed删除每行的第二个字符

编写一条sed命令,删除文件中每行的第二个字符。

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

上述命令删除第一个字符。但是如何单独指定第二个字符呢?

答案1

sed 's/.//2' sample

尾随是命令 in2的“标志” (就像有时过度使用的那样),它指示仅将替换应用于每行正则表达式的第二个匹配项。由于正则表达式是(匹配任何单个字符),这将从每个输入行中删除第二个字符。ssedgsed.

/您可以在命令的最后分隔符后使用任何正整数s来向前跳过一行中的一些匹配项。

答案2

如果您sed支持反向引用:

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

答案3

根据您的具体情况

您可以使用以下规则

sed 's/.//2' sample

其中2对应于第二个字符。

作为一个假人的例子输入文件名为test.txt

qwertyuiop
asdfghjkl
zxcvbnm

输出sed 's/.//2' test.txt命令是

qertyuiop
adfghjkl
zcvbnm

作为基本规则

您可以使用以下方法删除Nth模式的字符(即所有字符).

sed 's/.//N' sample

相关内容