2011-02-08 2 views

Répondre

11
find . -name 'abc*' | sed 's/$/\tok/' | column -t 

sed ajoute la chaîne <Tab>ok à chaque ligne, et column formats la sortie bien (Vous pouvez simplement ignorer ceci, si vous n'en avez pas besoin).

0

Jetez un oeil à la commande standard paste. Ou pour chaque élément de ce que find doit obtenir manuellement l'écho du nom de fichier et le résultat d'une fonction sur ce nom de fichier.

Pouvez-vous s'il vous plaît dire ce que vous voulez finalement faire?

1

Vous pouvez utiliser xargs:

find -iname "abc" | xargs -IREPL echo REPL ok 
4

redirigez la sed, est une façon:

| sed -e 's/\(^.*\)/\1 ok/' 
0

Utilisez quelque chose comme ceci:

find . -name "abc*" -exec echo "{} - ok" \; 
4

simplement:

$ find . -name 'abc*' | xargs -I {} echo {} OK 
+0

Pas vraiment différent de ma réponse, est-il? – histumness

10

J'ai tendance à écrire:

whatever | while read line; do echo $line ok; done 

Cela pourrait être surpuissant pour quelque chose ce simple, mais il devient le chose la plus simple à faire si vous voulez faire des choses plus compliquées avec la ligne. Et cela ne signifie pas se souvenir comment faire fonctionner sed!

6

Avec GNU trouver,

find . -name "abc*" -printf "%f ok\n" 
+0

Simple et n'a pas besoin d'un autre outil. +1 – Boldewyn

0
find . -name 'abc*' -exec echo {}' OK' \; | column -t 
Questions connexes