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

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

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

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

решение1

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

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

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

решение2

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

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

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

решение3

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

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

Связанный контент