Как не зафиксировать “Новую строку в конце файла” предупреждение для большого количества файлов?

У меня есть огромное количество исходных файлов, которые все испытывают недостаток в новой строке в конце.

Как я автоматически добавляю новую строку в конец каждого из них?

У некоторых может уже быть новая строка, таким образом, она должна только быть добавлена при необходимости.

Я, вероятно, не ищу код, по сути, но просто что-то, что я могу выполнить в Терминале для добавления необходимых новых строк (или некоторое программирование или средство разработки).

10
задан kenorb 16 May 2015 в 14:25
поделиться

1 ответ

Если у вас есть доступ к инструментам Unix, вы можете запустить diff, чтобы узнать, в каких файлах не хватает новой строки, а затем добавить ее:

#!/bin/sh
for i
do
  if diff /dev/null "$i" | tail -1 | grep '^\\ No newline' > /dev/null
  then 
    echo >> "$i"
  fi
done

Я полагаюсь на diff, который выдаст сообщение с \ в первой колонке, tail, который даст мне последнюю строку вывода diff, и grep, который скажет мне, является ли последняя строка сообщением, которое я ищу. Если все это работает, то echo выдает новую строку, а >> добавляет ее в файл "$i". Кавычки вокруг "$i" гарантируют, что все будет работать, если в имени файла есть пробелы.

7
ответ дан 3 December 2019 в 16:51
поделиться
Другие вопросы по тегам:

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