Свяжите содержание файла И имена

Наконец, записанные ошибки не влияли на систему.

Мой /etc/network/interfaces файл похож (только wlan часть):

iface wlan0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

С этой конфигурацией я могу использовать sudo wpa_cli команда без ошибки!
Благодаря peterph так или иначе :)!

2
24.09.2014, 01:31
2 ответа

Вот способ сделать то, что Вы хотите с одним файлом (который мы пока назовем $file) и распечатать его на стандартный вывод

# prepend a "# " and remove the .markdown from the filename
sed 's/\.markdown//' <<< "# $file"
# print a blank line
echo
# output the file
cat "$file"

Теперь для того, что Вы действительно хотели, заключите это в цикл for, чтобы выполнить итерацию над каждой пометкой в каталоге. Затем выведите результат в файл.

for file in *.markdown; do
    # prepend a "# " and remove the .markdown from the filename
    sed 's/\.markdown//' <<< "# $file"
    # print a blank line
    echo
    # output the file
    cat "$file"
    # separate the files with another blank line
    echo
done > writing.markdown

EDIT: Подождите, это не то, что вы хотели! Чтобы изменить порядок, мы можем использовать запятую find, чтобы найти все файлы уценки, а затем вывести результат в сортировку -r, чтобы получить нужный вам обратный порядок сортировки. Наконец, впишите это в , прочитайте и выполните цикл. Дополнительно, нам нужно будет вызвать basename при извлечении даты из имени файла, так как find возвращает путь, а не имя файла.

find -name '*.markdown' -not -name 'writing.markdown' | sort -r | while read file; do
    # prepend a "# " and remove the .markdown from the filename
    sed 's/\.markdown//' <<< "# $(basename $file)"
    # print a blank line
    echo
    # output the file
    cat "$file"
    # separate the files with another blank line
    echo
done > writing.markdown

Так как их действительно трудно найти в google, я включил ссылку на некоторую документацию по Here Strings на тот случай, если вы не знакомы с ними.

4
27.01.2020, 22:00

Вы можете попробовать что-нибудь подобное. Я записал в три текстовых файла sample1, sample2 и sample3 с точным содержанием, которое вы предоставили. Когда я набираю эту команду:

cat sample1 sample2 sample3 >> sample4

я получаю это для результатов, когда я cat sample4:

2014-09-23
Asked question on stackexchange. Damn that is a helpful community!
2014-09-22.markdown
That's one serious writing habit I have!
2014-09-21.markdown
Look at all these words I've written!

>> добавляется к sample4, в то время как один > перезаписывал sample4 каждый раз, когда он использовался. Таким образом, в Вашем случае, Вы можете использовать эту команду:

cat 2014-09-23.markdown 2014-09-22.markdown 2014-09-21.markdown >> запись.markdown

0
27.01.2020, 22:00

Теги

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