Tente isto:
awk -F'\t' '{print>$1;}' file
Quando o comando acima estiver completo, haverá mais dois arquivos no diretório:
$ cat name1
name1 something1
name1 something2
name1 something3
$ cat name2
name2 something4
name2 something5
Como funciona
-
-F'\t'
Isto diz ao awk para usar um separador como o separador de campos.
-
print>$1
Isto diz ao awk para imprimir cada linha para o arquivo nomeado após o primeiro campo.
Removendo caracteres ilegais dos nomes de arquivos
Suponha que o arquivo de entrada se pareça com:
$ cat file
name/1 something1
name/1 something2
name/1 something3
name/2 something4
name/2 something5
O código a seguir cria arquivos com base no campo de nome, mas com /
removido:
awk -F'\t' '{name=$1; gsub(/[/]/, "", name); print>name;}' file
O acima foi testado no GNU awk e foi executado com sucesso. Se o seu awk não aceitar, tente:
awk -F'\t' '{name=$1; gsub("/", "", name); print>name;}' file
ou:
awk -F'\t' '{name=$1; gsub(/\//, "", name); print>name;}' file