2013-11-23 2 views
1

В файле C: \ test, haha есть файл с именем haha. Он содержит символ look for me, в linux я могу выполнить поиск, чтобы получить имя файла.искать в каталоге, чтобы получить имя файла в R

find/ -name "look for me" 

Могу ли я найти файл с некоторой командой R в xp os?
Если я не знаю имя файла, которое содержит символ look for me, это haha, как я могу это сделать?

+0

Ваш вопрос настолько плохо написан. Я думаю, у вас есть 3 вопроса: 1. Как найти файлы с именем 'haha'. 2. Как проверить, содержит ли файл строку 'look for me'. 3. Как найти все файлы, содержащие строку 'look for me'. – janos

+0

@janos, я думаю, что OP говорит, что имя файла неизвестно, но оно содержит строку «look for me». OP хочет восстановить имя файла. – Jota

+0

Фрэнк, ты прав. –

ответ

1

или plyr:

require(plyr) # uses plyr 
textFiles<-list.files(pattern=".txt") # only looks at .txt file, you can change or omit 
#alply reads each file and returns 
# a list of filenames which pass the grep test 
# and indicate the first line identified 
mylist<-alply(textFiles, 
      1, 
      function(f){fline<-grep("LOOK FOR ME",readLines(f)) 
         ifelse(fline>0,paste(f,fline,sep=" - line:"),NULL) 
      }) 
Filter(is.character,mylist) # gives you a list of all files containing the term 
0

Этот код будет содержать имя файла с фразой «хаха» внутри него. И затем проверьте, есть ли строка «look for me» в любом месте внутри нее. Это то, что вы хотите?

whichfile <- grep(
    x = list.files(), 
    pattern = "haha", 
    value = TRUE 
) 

sum(
    grepl(
    x = readLines(whichfile), 
    pattern = 'look for me') 
) 
Смежные вопросы