It seems easy with sed using backreferences:
sed 's/\(.\)\1\+/\1/g' infile
سؤال
If the character is met more than once I must replace it with a single one. For example i have this in a file: ????aca
, I must replace it with ?aca
. I've tried it with tr
, but didn't make it to work proper.
المحلول
It seems easy with sed using backreferences:
sed 's/\(.\)\1\+/\1/g' infile
نصائح أخرى
If you want to truncate consecutive runs of one particular character, tr -s
does that.
tr -s '?' <file >file.new
Based on your limitation to ?
sed 's/[?]\{2,\}/?/g' YourFile
also POSIX compliant