Необходим простой скрипт / цикл / команда для ввода, выполнения и вывода в текстовых файлах

Предположим, у меня есть список команд в текстовом файле, как показано ниже (cat cmdlist.txt): -

cut
lshw
top
awk
sensors

Теперь я хочу получить простую информацию об этой команде с помощью whatis cut, whatis lshw и т. Д. соответственно и распечатайте эти выходные данные whatis <commadnd> в текстовом файле, скажем cmdinfo.txt

Желаемый выходной сигнал cmdinfo.txt (cat cmdinfo.txt): -

cut (1)              - remove sections from each line of files
lshw (1)             - list hardware
top (1)              - display Linux processes
awk (1)              - pattern scanning and text processing language
sensors (1)          - print sensors information

Как получить файл cmdinfo.txt с выводом whatis для команд из cmdlist.txt соответственно?

Это только примеры текстовых файлов.

Предложите простой сценарий, если необходимо.

5
задан 14 July 2014 в 16:28

5 ответов

Максимально простой:

xargs whatis < cmdlist.txt > cmdinfo.txt
9
ответ дан 14 July 2014 в 16:28

Намного более простой один,

$ while read -r line; do whatis "$line"; done < cmdlist.txt > cmdinfo.txt
cut (1)              - remove sections from each line of files
lshw (1)             - list hardware
top (1)              - display Linux processes
awk (1)              - pattern scanning and text processing language
sensors (1)          - print sensors information

Использование ниже команды для записи результата в файл.

while read -r line; do whatis "$line"; done < cmdlist.txt > cmdinfo.txt
5
ответ дан 14 July 2014 в 16:28

Что-то вроде этого:

#! /bin/bash
in_file=$1
out_file=$2

while read command
do
    whatis $command 
done < $in_file >> $out_file

я принял решение уехать stderr нетронутый, с тех пор если у Вас есть команда там, для которой whatis информация не доступна, Вы должны быть сделаны знающий о том (и посмотреть в другом месте, в случае необходимости).

2
ответ дан 14 July 2014 в 16:28

Очень просто:

for i in $(cat cmdlist.txt); do whatis $i ; done > cmdinfo.txt

Это циклично выполняется посредством каждой записи (i) в выводе $(cat cmdlist.txt) и работает whatis на очень записи. Пример произвел:

cut (1)              - remove sections from each line of files
lshw (1)             - list hardware
top (1)              - display Linux processes
awk (1)              - pattern scanning and processing language
sensors (1)          - print sensors information

N.B. даже при том, что во многих примерах Вы найдете i используемый, Вы не должны использовать его - можно использовать самые простые алфавитно-цифровые строки - например:

for jnka127nsdn in $(cat input.txt); do whatis $jnka127nsdn ; done

, Чтобы сделать это, не анализируя cat:

while read -r i ; do whatis $i ; done < cmdlist.txt
3
ответ дан 14 July 2014 в 16:28

Я думаю, что можно получить правильно результат со следующей командой.

$ for i in `cat cmdlist.txt`;do whatis $i 2>&1;done | sed "s,: nothing appropriate.,,g" > cmdinfo.txt

Действительно,

$ for i in `cat cmdlist.txt`;do whatis $i 2>&1;done

Команда, одна часть первой команды покажет выводы после.

cut (1)              - remove sections from each line of files
lshw (1)             - list hardware
top (1)              - display Linux tasks
.: nothing appropriate.
.: nothing appropriate.
.: nothing appropriate.
tr (1)               - translate or delete characters

можно сделать это с whatis $(cat cmdlist.txt), но это производится, включает следующие строки.

.: nothing appropriate.
.: nothing appropriate.
.: nothing appropriate.

выше sed команда удаляет некоторые выходные строки Вы бесполезный.

Вопрос изменяется как теперь. Если все строки cmdlist.txt может быть перечислен от whatis, Может использовать следующую команду в качестве простого пути.

whatis `cat 1.txt` 2>/dev/null > cmdinfo.txt

Если Вам просто нужны строки, которые могут быть полностью перечислены от whatis, Может использовать следующую команду в качестве simpleway.

whatis `cat 1.txt` > cmdinfo.txt

Однако можно выбрать один способ различных.

2
ответ дан 14 July 2014 в 16:28

Другие вопросы по тегам:

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