nova coluna para um arquivo delimitado por tabulação, com um valor predefinido

0

Como posso adicionar uma nova coluna a um arquivo delimitado por tabulação, no final do arquivo, contendo os mesmos valores para cada linha.

Por exemplo:

infile.txt

Name    Age Address Sex
X   12  adrs1   M
Y   15  adrs2   F
Z   10  adrs3   M

Eu quero adicionar outra coloumn 'School' contendo os mesmos valores'st.xaviers 'para cada linha

outfile.txt

Name    Age Address Sex School
X   12  adrs1   M   st.xaviers  
Y   15  adrs2   F   st.xaviers
Z   10  adrs3   M   st.xaviers

Eu tentei awk '{print $0, "School"} para adicionar a coluna. Como posso adicionar o 'st.xaviers' a cada linha da coluna "School"?

Agora, se isso fizer parte do shell script, e eu tiver uma variável pré-definida School = st.xaviers.

Como posso adicionar valores de $School à coluna 'Escola' em outfile.txt

    
por panbar 17.03.2016 / 14:16

2 respostas

0

Eu juro que a mesma pergunta foi feita e respondida há algumas semanas ... mas não consigo encontrá-la.

A receita é:

  • verifique se a primeira coluna é "Nome" e imprima a linha TAB e "School" quando estiver; pronto, pule para a próxima linha
  • todas as outras linhas não vazias ($ 1 existe) devem ser impressas com a seguinte guia e "st.xaviers"

Como:

awk -vschool="$School" '$1=="Name" { print $0 "\tSchool"; next}; $1 {print $0 "\t" school}'

ou

export School
awk '$1=="Name" { print $0 "\tSchool"; next}; $1 {print $0 "\t" ENVIRON["School"]}'

O primeiro define uma variável awk usando -v, o último espia em seu ambiente depois que export permite ver School .

    
por 17.03.2016 / 14:42
0

Se você permitir o Perl como um superconjunto do awk:

perl -p -i -e 's/Sex$/Sex\tSchool/ or s/$/\tst.xaviers/'

Eu imagino que uma construção similar é possível no awk (ou sed) também.

    
por 17.03.2016 / 16:10