У меня есть каталог с несколькими .txt
файлами.
Из каждого из этих файлов я хочу выбрать первую строку и распечатать ее в новый .txt
файл (чтобы получить список всех первых строк).
Я попробовал с awk
и sed
командами и соединил его с петлей, но без успеха.
command-line
text-processing
Аннемике Смет
источник
источник
Ответы:
Используйте
head
:-n1
говоритhead
извлечь только первую строку.-q
говорит голове не печатать имя файла.источник
Использование
grep
:grep
будет соответствовать любому символу и выйдет после первого совпадения, т.е.grep
выведет первые строки всех входных файлов, и мы сохраним их вout.txt
.источник
Использование только Bash:
*.txt
расширен до списка папок / файлов, оканчивающихся.txt
на текущий рабочий каталог (поскольку есть только файлы, оканчивающиеся на папки,.txt
которые не имеют значения);<"$f" read line
читает одну строку из пути к файлу, который хранится в,f
и сохраняет его в немline
;printf "$line\n" >>new.txt
: добавляет содержимоеline
кnew.txt
;источник
Вы пробовали это
awk
, вотawk
версияисточник
Другой подход с AWK - указать AWK на печать, но затем сразу перейти к следующему файлу.
sed
также позволяет печатать определенные строки. Здесь я объединил это сfind
И perl:
И последний по порядку но не по значимости ,
grep
Сохранение всего в одном файле - это просто добавление
> outputFile.txt
в конце этих команд.источник