O termo "campo" geralmente é associado a ferramentas como cut e awk . Um campo seria semelhante a uma coluna de dados, se você pegar os dados e separá-los usando um caractere específico. Normalmente, o caractere usado para fazer isso é um Espaço .
No entanto, como é o caso da maioria das ferramentas, é configurável. Por exemplo:
- awk =
awk -F"," ...- separaria por vírgulas (ou seja, , ). - cut =
cut -d"," ...- separaria por vírgulas (ou seja, , ).
Exemplos
Este primeiro mostra como awk será automaticamente dividido em espaços.
$ echo "The rain in Spain." | awk '{print $1" "$4}'
The Spain.
Este mostra como o cut também será dividido em espaços.
$ echo "The rain in Spain." | cut -d" " -f1,4
The Spain.
Aqui temos uma lista de dados da coluna CSV que estamos usando cut para retornar as colunas 1 & 4.
$ echo "col1,col2,col3,co4" | cut -d"," -f1,4
col1,co4
Awk também pode fazer isso:
$ echo "col1,col2,col3,co4" | awk -F"," '{print $1","$4}'
col1,co4
O Awk também é um pouco mais apto a lidar com uma variedade de caracteres de separação. Aqui está lidando com Tabs junto com Espaços onde eles estão misturados ao mesmo tempo:
$ echo -e "The\t rain\t\t in Spain." | awk '{print $1" "$4}'
The Spain.
E o interruptor -s para cortar?
Com relação a essa opção, ele simplesmente informa cut para não imprimir nenhuma linha que não contenha o caractere delimitador especificado por meio da opção -d .
Exemplo
Digamos que tenhamos este arquivo.
$ cat sample.txt
This is a space string.
This is a space and tab string.
Thisstringcontainsneither.
NOTA: existem espaços e tabulações na segunda cadeia acima.
Agora, quando processamos essas sequências usando cut com e sem a opção -s :
$ cut -d" " -f1-6 sample.txt
This is a space string.
This is a space
Thisstringcontainsneither.
$ cut -d" " -f1-6 -s sample.txt
This is a space string.
This is a space
No segundo exemplo, você pode ver que a opção -s omitiu todas as strings da saída que não contêm o delimitador, Espaço .