Mi archivo de texto no tiene delimitador para especificar separadores solo espacios, ¿cómo corto la columna 2 al archivo de salida,
39 207 City and County of San Francisc REJECTED MAT = 0
78 412 Cases and materials on corporat REJECTED MAT = 0
82 431 The preparation of contracts an REJECTED MAT = 0
Entonces la salida que necesito es
207
412
432
fuente

cat ... |rara vez es necesario. La mayoría de los comandos de Unix, comocuttomar uno o más archivos de entrada como argumentos, por ejemplocut -d" " -f5 columns.txt.como @jimmij dijo,
awk '{print $2}' filees la respuesta más simple.Si, por alguna razón, no desea usar
awke insiste en usarcut, puede usarsedpara convertir cada instancia de dos o más espacios en una sola pestaña (cutdelimitador predeterminado) antes de cortar en corte:fuente
Todavía puede usar espacios individuales como delimitador, solo tendrá más columnas. Aumente el valor que le da
cut -d' ' -fde 2 a 5, o tal vez 6. Incremente el número hasta obtener los resultados deseados.fuente
El anterior es muy útil cuando las utilidades de Linux como awk para extracción de datos no funcionan si está cambiando a usuario "root" dentro de un script de shell como el siguiente:
fuente
awkno funcionará" en su ejemplo es que el documento aquí no está entre comillas, lo que significa$2que el shell lo expandirá al segundo parámetro posicional. La solución probablemente no sea cambiar a ungrepcomando, sino escapar del$in$2como\$2o simplemente citar todo el documento utilizando<<'EOF'en lugar de<<EOF. También tenga en cuenta que la tarea en su ejemplo se lleva a cabo más simplemente porpgrep.