У меня есть каталог на моем компьютере, который содержит всю базу данных, которую я нашел онлайн для своих исследований. Эта база данных содержит тысячи файлов, поэтому для того, чтобы делать то, что мне нужно, я искал материал файла ввода-вывода. Друг-программист предложил использовать bash/awk. Я написал мой код:Использование awk для обработки базы данных
#!/usr/bin/env awk
ls -l|awk'
BEGIN {print "Now running"}
{if(NR == 17/$1 >= 0.4/$1 <= 2.5)
{print $1 > wavelengths.txt;
print $2 > reflectance.txt;
print $3 > standardDev.txt;}}END{print "done"}'
Когда я это в моей консоли, я уже в каталоге файлов, мне нужно получить доступ. Данные, которые мне нужны, начинаются в строке 17 КАЖДОГО файла. Данные выглядит следующим образом:
some number some number some number
some number some number some number
. . .
. . .
. . .
Я хочу получить доступ к данным, когда первый столбец имеет значение 0,4 (или приблизительно) и получить информацию до тех пор, первый столбец не имеет значение, равное приблизительно 2,5. Первый столбец представляет длины волн. Я хочу проверить, что они все равно для каждого файла позже, поэтому я копирую их в файл. Второй столбец отражает коэффициент отражения, и я хочу, чтобы это был отдельный файл, потому что позже я возьму эту информацию и построю из нее матрицу данных. Третья колонка - стандартное отклонение коэффициента отражения.
Проблема, которую я имею сейчас, что, когда я запускаю этот код, я получаю следующее сообщение об ошибке: Нет такого файла или каталога
Пожалуйста, если кто-нибудь может сказать мне, почему я мог бы получить эту ошибку, или может расскажите мне, как написать код для того, что я пытаюсь сделать ... Я буду так благодарен.
Не смотря на свой код, вы наверняка хотите команду ls, а не 'Ls -l'. –