[R] list.files() find files beginning with a .

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun Jul 8 15:46:43 CEST 2012


On 08/07/2012 14:35, Uwe Ligges wrote:
>
>
> On 08.07.2012 14:47, syrvn wrote:
>> Hello,
>>
>> when I use list.files with recursive = TRUE and all.files = TRUE, R
>> returns
>> a list of strings/paths.
>>> From all those strings I want to keep only the ones starting with a .
>> I tried using grep to achieve that. However, the problem is that
>> because of
>> the recursive list.files parameter,
>> for some files beginning with a . there is a path attached. I think it is
>> not as simple as it looks because all files
>> end with . something. .xlsx or .txt or .r...
>>
>> files <- list.files("~", recursive = TRUE, all.files = TRUE)
>> files
>> /XXX/ZZZ/.R_history
>> /XXX/ZZZ/AAA/Script.r
>> /XXX/ZZZ/BBB/test.xlsx
>> /XXX/ZZZ/CCC/.xyz
>>
>> files <- files[grep("^.*$", files)]
>>
>> I want grep to return only the following to lines:
>>
>> /XXX/ZZZ/.R_history
>> /XXX/ZZZ/CCC/.xyz
>
>
> You do not need grep, let list.files do all the stuff for you:
>
> list.files("~", recursive = TRUE, all.files = TRUE, pattern="^\\.")

Some people find the equivalent pattern = "^[.]" clearer to read.



-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list