perl -lane '
if ( @F == 4 ) { # num fields are 4
print $result if $. > 1; # in case we"re not @ BOF, show result
$result = join "\t", @F[0,2]; # initialize result
} else {
$result .= ",$F[0]"; # append result
}
eof && print $result; # on the last line, show result
' filename
На самом деле в документации bash сказано:
Вызывается как интерактивная оболочка без входа в систему При запуске интерактивной оболочки, которая не является оболочкой входа в систему , Bash читает и выполняет команды из ~ / .bashrc, если этот файл существует.
Итак, это ожидаемое поведение
Источник: http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files