Назад | Перейти на главную страницу

Вывод команды в первую строку файла

Я пытаюсь вставить вывод команды в первую строку файла.

Например, у меня есть файл с именем «list.txt», и я хочу вставить текст, содержащий все имена файлов в этой папке. Способ направить вывод ls в первую строку list.txt.

Большинство людей знают о sed как об инструменте для поиска и поиска и пополнения на основе регулярных выражений, но это полноценный редактор, способный вносить изменения.

Итак, вы можете выполнить такую ​​команду. Которая вставит (1 i) первая строка команды ls $(ls| head -1) в list.txt файл на месте (-i).

sed -i "1 i$(ls| head -1)" list.txt

Возможно, есть более элегантный способ сделать это, но вы можете просто использовать несколько файлов. Например:

ls | head -n 1 > temp-list.txt
cat list.txt >> temp-list.txt
mv temp-list.txt list.txt

Не существует собственного способа перенаправления на первую строку файла, но вы все равно можете использовать временный файл для этого. Например, сначала добавьте вывод в list2.txt, затем кот list.txt в него и записать весь вывод обратно в list.txt:

ls > list2.txt
cat list.txt >> list2.txt
mv list2.txt list.txt

Таким образом вы получите то, что ищете.