Перейти к содержимому

Добавить текст в список файлов

4

Я пытаюсь использовать xargs для манипулирования набором файлов.

Файл с именем filelist.txt содержит имена файлов

john  paul  george ringo steve  

Я могу создать все эти файлы с помощью этой команды:

cat filelist.txt | xargs touch 

Как добавить один и тот же текст «привет» к каждому файлу в списке? Кроме того, как бы я добавил текст, основанный на имени файла .. т.е. «имя: Стив» в файл Стива?

618 просмотров
cannyboy спросил 9 лет назад
C 29

2 ответа

4
Принятый ответ

Append hello to each file:

cat filelist.txt | while read line; do echo hello >> $line; done 

Append filename to each file:

cat filelist.txt | while read line; do echo $line >> $line; done 
Steven ответил 9 лет назад
S 23 231
0

I've marked @steven's as correct because it's perhaps more readable, but I was curious about a solution which used xargs. This is what I found:

cat filelist.txt | xargs -I $0 sh -c "echo 'hello' > $0" cat filelist.txt | xargs -I $0 sh -c "echo 'hello $0' > $0" 

The -I $0 means replace $0 in the upcoming string. You could use something more readable like $NAME or person_name etc. sh -c performs the command in a string. Not sure why that's needed.

cannyboy ответил 9 лет назад
C 29