Мой текстовый файл не имеет разделителя для указания разделителя только пробелы, как вырезать столбец 2 в выходной файл,
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
Итак, выход мне нужен
207
412
432
источник
cat ... |
необходима редко. Большинство команд Unix, например,cut
принимают один или несколько входных файлов в качестве аргументов, напримерcut -d" " -f5 columns.txt
.как сказал @jimmij,
awk '{print $2}' file
это самый простой ответ.Если по какой-то причине вы не хотите использовать
awk
и настаиваете на использованииcut
, вы можете использоватьsed
для преобразования каждого экземпляра двух или более пробелов в одну вкладку (cut
разделитель по умолчанию) перед конвейерной обработкой в cut:источник
Вы по-прежнему можете использовать одиночные пробелы в качестве разделителя, у вас просто будет больше столбцов. Увеличьте значение, которое вы даете,
cut -d' ' -f
с 2 до 5 или, может быть, 6. Увеличивайте число, пока не получите желаемый результат.источник
Выше очень полезно, когда утилиты Linux, такие как awk для извлечения данных, не работают, если вы переходите на «root» пользователя внутри сценария оболочки, как показано ниже:
источник
awk
не сработает» в вашем примере - это то, что здесь-документ не заключен в кавычки, то есть$2
оболочка будет расширена оболочкой до второго позиционного параметра. Решение, вероятно , не переключиться наgrep
команду , но либо спасаясь от$
в$2
качестве\$2
или просто процитировать весь документ, используя<<'EOF'
вместо<<EOF
. Также обратите внимание, что задача в вашем примере более просто выполняетсяpgrep
.