如何使用sed命令刪除一行中的前三個字符?例如,行,如下所示:如何使用sed命令刪除一行中的前三個字符?
週三
應該成爲
週三
sed -i -e 's/Ive tried everything, but the right thing//g' $HOME/filename
如何使用sed命令刪除一行中的前三個字符?例如,行,如下所示:如何使用sed命令刪除一行中的前三個字符?
週三
應該成爲
週三
sed -i -e 's/Ive tried everything, but the right thing//g' $HOME/filename
GNU sed的爲此具有一個特殊的標誌:
sed -e 's/.//4g'
的4
這裏指示sed
從替代模式的第四occurence開始。
這將這樣的伎倆:
sed -re 's/^(...).*$/\1/'
^
匹配行首;(...)
匹配三個字符並將它們放入組#1;.*$
匹配所有內容,直到行尾;\1
是組#1的內容。-r
/--regexp-extended
選項是使用組所必需的。
謝謝!當我測試它時,你的回答/例子效果很好。我要用* sed -e's /./4g'*去,因爲它更短。 – XXX
@XXX不客氣。請注意,如果這是唯一的操作,'sed'有點矯枉過正,'cut -c 1-3'或'grep -o^...'會更適合(和POSIX友好的)。但是你可能會錯過'--in-place'選項。 – xhienne