# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(?:^|\G)( {4}|\t)/\t/mg;t' <<< "<?php
class SomeClass
{
var $property = 1;
function double(int $x)
{
$result = $x + $x;
// line already indented with tabs
// line started with tab, but followed with spaces
// line has 4 spaces in the middle
// line endings with 4 spaces
return $result;
}
}"
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for SED, please visit: https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html