-1

Я хочу удалить все повторяющиеся слова в нескольких файлах и оставить только одно слово. Как мне это сделать? Также я хочу сказать, что содержимое файла не должно быть коротким.

Пример:- Предположим, у меня есть 10(от 1.txt до 10.txt) файлов. Название слова ABC находится в файлах № 1, 4 и 6. Также слово Word XYZ находится в файле номер 3,5,8,9,10.

      I want to remove word ABC from file number 4 and 6 only and keep word ABC in file number 1 only. Same as the for word xyz. I want to keep word xyz only in file number 3.txt and remove from file number 5,8,9,10.txt

     Please give me guidance for the same.

     Thank You.

1 ответ1

0

Я делаю то же самое с файлами (удаляю все, кроме одного и того же размера size + crc32), но я использовал причудливый скрипт, чтобы отфильтровать материал.

Вы могли бы сначала использовать что-то вроде word | sort | uniq для создания отсортированного списка слов для каждого файла.

Затем я бы использовал ассоциативный массив (как в REXX), где

 /*  REXX  */
 used. = 0
 do n = 1 to 10; call dofile; end
 exit

 dofile: 
 infile = n'.txt'; outfile = n'.out'
 call stream infile, 'c', 'open read'
 call stream outfile, 'c', 'open write replace'
 do while lines(infile)
   word = linein(infile)
   /* remove the comment markers to make it case insensitive */
   /* word = translate(word) */
   if used.word = 0  
      then do; call lineout outfile, word; used.word = 1; end
  end
  call stream outfile, 'c', 'close'
  call stream infile, 'c', 'close'
  return

Этот конкретный скрипт поддерживает список всех слов, используемых во всех файлах. Он читает в файле, и посмотреть, если слово уже известно, или должно быть изучено. Если он должен быть изучен, то он запоминается, и копия записывается в файл .out урока, в котором он был изучен. Итак, в вашем примере «xyz» изучается в младшем 3 и находится в 3.out, в то время как ABC изучается в уроке 1, так же как в 1.out.

Вроде как учить язык.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .