Введення слова у кожен файл txt у папку


Відповіді:


20

Простий для буде виконати роботу:

for i in ./*.txt; do echo 'cat' >> "$i"; done;

У цьому випадку ви отримаєте список усіх txt-файлів у поточній папці, циклічні в них по всій echoкоту і вкажіть їх (додайте до вмісту). Ви можете змінити , >>щоб >, щоб перезаписати вміст файлів з кішкою.

Ще одна річ, яку ви можете зробити, це використовувати teeдля перенаправлення потоку на кілька файлів.

Щоб додати:

echo "cat" | tee -a *.txt

Щоб перезаписати:

echo "cat" | tee *.txt

що можна використовувати echo "cat" >> *.txt?
hytromo

4
@hakermania, яка повинна зірватисяambiguous redirect
Zanna

13

Якщо файли не порожні, ви можете використовувати їх sedбез циклу. Щоб додати catна початку:

sed 'i\cat' *.txt

Щоб додати в кінці:

sed 'a\cat' *.txt

Щоб додати після другого рядка:

sed '2 a\cat' *.txt

Щоб додати до них рядки foo:

sed '/foo/ i\cat' *.txt

Однак він не працює на порожніх файлах. Вид клопа.

( Для того, щоб на самому ділі писати в файли після тестування вам потрібен -iваріант: sed -i 'a\cat' *.txt)


Я ненавиджу sed :)), тому що є багато речей, які ти можеш зробити з цим, і я про них не знаю :))
Ravexina

@Ravexina sed- це моє варення;)
Zanna

Чому 'i\cat'використовується зворотна косою рисою замість косої риси?
phuclv

@ LưuVĩnhPhúc зворотний кут насправді необов’язковий, ви також можете поставити 'icat'або i cat. Я вважаю, що зворотна коса риса є звичайною. Ви не можете використовувати форвашерш - він буде буквально вставлений
Zanna

4

Підхід Python:

#!/usr/bin/env python
import sys

for i in sys.argv[1:]:
    with open(i,'w') as fd:
        fd.write("cat\n")
  • він використовує sysмодуль для ітерації аргументів командного рядка
  • кожен аргумент командного рядка буде відкритим як файл для запису
  • "cat" з новим рядком буде записаний до файлу перед переходом до наступного

Використання було б таким ./add_cat.py *.txt, яке оперувало б усіма .txtфайлами в поточному робочому каталозі. Удосконалення цього може включати використання аргументу командного рядка №1 в якості рядка для запису замість жорсткого кодування там «кота».

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.