комманды >,>>,<.|
Объясните, что за команды >,>>,<.| и с чем их едят?
В задании на лабораторную работу написано, что этими командами надо работать с текстовым файлом, но че делают они не объясняли....типа сами разбирайтесь. Помогите плз.
И как командой echo можно работать с текст файлом???:confused:
Система FreeBSD 6.1
если ты после некоторой команды напишешь > и потом путь к текстовому файлу, в этом файле будет сохранено, то что должно вывеститсь на экран после выполнения команды
>> - перенаправление вывода результата работы программы; добавление в конец файла
< - перенаправление ввода данных программы на файл (из этого файла будут браться ответы на вопросы программы, как - зависит от программы)
| - перенаправление вывода результата работы программы в другую программу, например:
Код:
ls /home/ -la | less
Работать с текстовым файлом...
Вывод файла на экран
Код:
echo < file.txt
Вывод в файл
Код:
echo "Это есть строка в файле ;)" > file.txt
echo "Это есть вторая строка в файле" >> file.txt
echo "Это есть вторая строка в файле" >> file.txt
PS. Объяснил как знаю;) если что не так, просьба ногами не пинать:)
если имелось ввиду, что < выводит содержимое файла на экран, то чет не пашет...просто пустую строчку выводит.
Примерно так:
Код:
univer:~/scripts$ echo < db.dat
univer:~/scripts$
univer:~/scripts$
а про | че то ваще не понял....
Код:
$ cat file.txt
123
abc
123
abc
подсчитаем строки сначала передав файл как аргумент, затем - с перенаправлением потока ввода вывода
Код:
$ wc -l test.txt
2 test.txt
$ wc -l < test.txt
2
$
2 test.txt
$ wc -l < test.txt
2
$
обрати внимание на то, как отличается вывод в двух случаях. Вариант с перенаправлением аналогичен тому, как если бы мы написали просто
wc -l
ввели бы две строки с клавиатуры и нажали Ctrl+D (EOF). Именно поэтому во втором случае не выводится имя файла после результатов подсчета - потому что имя файла в данном случае, отсутствует (вернее если быть точным - то это stdin)
Для echo - вариант не работает, потому что echo не предусматривает обработку stdin. то что ты написал - аналогично просто пустой команде echo :)
| - обозначает перенаправление вывода (stdout) команды на ввод (stdin) другой команды.
Пример:
Код:
$ cat test.txt | grep abc
abc
abc
т. е. - cat выводит содержимое файла test.txt и через "конвеер" | передает этот вывод на вход утилите grep, которая ищет в переданом ей на вход строку abc.
это, кстати, аналогично:
Код:
$ grep abc < test.txt
abc
abc