Разделение четных и нечетных чисел

У меня есть файл с первыми 100 числами, и я должен взять только четные числа в другой файл. Как я могу сделать это с grep?

1
задан 10 March 2017 в 19:43

3 ответа

Если числа разделены пробелом (все на одной строке), тестируют это:

grep -E '(^| )1?[0-9]?[02468]( |$)' file

Получил его!

Добавляют эти -o переключатель для только для соответствия и перенаправления в новый файл:

grep -Eo '(^| )1?[0-9]?[02468]( |$)' file > newfile

, Если числа являются разделенной новой строкой:

grep -E '^1?[0-9]?[02468] 

Примечания:

  • -E расширенные регулярные выражения использования
  • (this|that) соответствие this или that
  • ^ запускаются строки
  • $ конец строки
  • ? нуль или один из предшествующего символа
file > newfile

Примечания:

  • -E расширенные регулярные выражения использования
  • (this|that) соответствие this или that
  • ^ запускаются строки
  • $ конец строки
  • ? нуль или один из предшествующего символа
1
ответ дан 3 December 2019 в 06:54

Принятие чисел является разделенной новой строкой, с awk:

awk '! ($0 % 2)' file.txt

Сохранить вывод в файле:

awk '! ($0 % 2) {print >"even.txt"}' file.txt 

Пример:

% cat file.txt             
1
2
3
4

% awk '! ($0 % 2)' file.txt
2
4

% awk '! ($0 % 2) {print >"even.txt"}' file.txt 

% cat even.txt 
2
4
2
ответ дан 3 December 2019 в 06:54

Используйте regex с grep

grep "^[0-9]*[13579]$" FILE > oddsfile.txt

grep "^[0-9]*[02468]$" FILE > evensfile.txt

Это передает файл по каналу в grep, который соответствует к regex и пишет это в файл

1
ответ дан 3 December 2019 в 06:54

Другие вопросы по тегам:

Похожие вопросы: