int ArraySize = 400;
int[] terms = new int[ArraySize];
for(int runs = 0; runs < ArraySize; runs++)
{
terms[runs] = runs;
}
, Который был бы, как я кодирую его.
Вы можете использовать grep
:
-E '\ w +'
поиск слов -o
печатает только ту часть строки, которая соответствует % cat temp Some examples use "The quick brown fox jumped over the lazy dog," rather than "Lorem ipsum dolor sit amet, consectetur adipiscing elit" for example text. # if you don't care whether words repeat % grep -o -E '\w+' temp Some examples use The quick brown fox jumped over the lazy dog rather than Lorem ipsum dolor sit amet consectetur adipiscing elit for example text
. Если вы хотите печатать каждое слово только один раз, без учета регистра, вы можете использовать sort
-u
печатает каждое слово только один раз - f
указывает sort
игнорировать регистр при сравнении слов # if you only want each word once % grep -o -E '\w+' temp | sort -u -f adipiscing amet brown consectetur dog dolor elit example examples for fox ipsum jumped lazy Lorem over quick rather sit Some text than The use
, если слова разделены пробелами
awk '{for(i=1;i<=NF;i++)print $i}' file
или
tr ' ' "\n" < file
, если вы хотите уникальности:
awk '{for(i=1;i<=NF;i++)_[$i]++}END{for(i in _) print i}' file
tr ' ' "\n" < file | sort -u
с удалением некоторых знаков препинания.
awk '{
gsub(/["*^&()#@$,?~]/,"")
for(i=1;i<=NF;i++){ _[$i] }
}
END{ for(o in _){ print o } }' file
Книга Кена Черча "Unix (TM) для поэтов" (PDF) описывает именно этот тип приложений - извлечение слов из текстовых файлов, их сортировка и подсчет и т. Д.
Хорошим началом будет просто использовать sed
, чтобы заменить все пробелы на новые строки, вырезать пустые строки (снова с помощью sed
), затем sort
с флагом -u
(uniquify) для удаления дубликатов, как в этом примере:
$ echo "the quick brown dog and fox jumped
over the lazy dog" | sed 's/ /\n/g' | sed '/^$/d' | sort -u
and
brown
dog
fox
jumped
lazy
over
quick
the
Затем вы можете начать беспокоиться о пунктуации и тому подобном.