En perl usamos <FileDescriptor>
para leer la línea de datos de un archivo desde ilne. Cómo hacer lo mismo usando script ant.¿Cómo leer datos línea por línea desde un archivo usando el script ant?
13
A
Respuesta
27
Puede hacerlo utilizando la tarea loadfile
en combinación con la tarea for
de (deberá descargar e instalar ant-contrib).
<project name="test" default="compile">
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="path/to/ant-contrib.jar"/>
</classpath>
</taskdef>
<loadfile property="file" srcfile="somefile.txt"/>
<target name="compile">
<for param="line" list="${file}" delimiter="${line.separator}">
<sequential>
<echo>@{line}</echo>
</sequential>
</for>
</target>
</project>
4
sólo tenía que hacer que yo, en realidad la solución de + line.separator es defectuoso porque:
- sólo funciona si los EOLs archivo coincidan con la plataforma de EOL
- descarta líneas vacías
Aquí es otra solución (mejor), basado en el ejemplo anterior:
<project name="test" default="compile">
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="path/to/ant-contrib.jar"/>
</classpath>
</taskdef>
<loadfile property="file" srcfile="somefile.txt"/>
<target name="compile">
<for param="line">
<tokens>
<file file="${file}"/>
</tokens>
<sequential>
<echo>@{line}</echo>
</sequential>
</for>
</target>
</project>
2
El ejemplo que utiliza tokens no funcionó para mí. En mi situación, simplemente buscaba imprimir un archivo README sin perder las líneas en blanco. Aquí esta lo que hice.
<taskdef name="if-contrib" classname="net.sf.antcontrib.logic.IfTask" classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" />
<taskdef name="for-contrib" classname="net.sf.antcontrib.logic.ForTask" classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" />
<taskdef name="var-contrib" classname="net.sf.antcontrib.property.Variable" classpath="${basedir}/lib/ant/ant-contrib-1.0b3.jar" />
<target name="help">
<for-contrib param="line">
<tokens>
<file file="README.txt" />
</tokens>
<sequential>
<var-contrib name="line.length" unset="true" />
<length string="@{line}" property="line.length" />
<if-contrib>
<equals arg1="${line.length}" arg2="0" />
<then>
<echo>
</echo>
</then>
<else>
<echo>@{line}</echo>
</else>
</if-contrib>
</sequential>
</for-contrib>
</target>
0
Intenta lo que debería ser el trabajo .....
<project name="test" default="compile">
<loadfile property="file" srcfile="Help.txt"/>
<target name="compile">
<echo>${file}</echo>
</target>
</project>
Cuestiones relacionadas
- 1. ¿Cómo leer línea por línea en archivo pdf usando PyPdf?
- 2. Leer un archivo línea por línea hacia atrás usando fseek
- 3. ¿Cómo leer desde un child_process línea por línea en Node.js?
- 4. Cómo leer línea por línea desde un área de texto
- 5. ¿Cómo leer un archivo .gz línea por línea en C++?
- 6. Perl leer línea por línea
- 7. phantomjs javascript leer un archivo local línea por línea
- 8. ¿Cómo leer datos de NSFileHandle línea por línea?
- 9. Leer un archivo de texto línea por línea en Qt
- 10. C++ Leer archivo línea por línea y luego dividir cada línea usando el delimitador
- 11. Rendimiento al leer un archivo línea por línea vs leer todo el archivo
- 12. ¿Cómo leer desde la entrada estándar línea por línea?
- 13. Leer un archivo línea por línea en Prolog
- 14. Leer/Analizar archivo de texto línea por línea en VBA
- 15. Leer cadena línea por línea
- 16. ¿Cómo ejecutar script bash línea por línea?
- 17. Leer una cadena línea por línea usando C++
- 18. Lea un archivo línea por línea
- 19. sincronización nodejs leer archivo grande línea por línea?
- 20. R - Leer STDIN línea por línea
- 21. Cómo leer archivos CSV línea por línea en VBScript
- 22. Leer línea por línea desde una variable en el shell scripting
- 23. Bash- ¿cómo leer la penúltima línea de un archivo?
- 24. ¿Cómo leo un archivo gzip línea por línea?
- 25. unistd.h función de lectura(): ¿cómo leer un archivo línea por línea?
- 26. ¿Cómo puedo leer línea por línea usando la interfaz Boost IOStreams para archivos Gzip?
- 27. boost :: filtering_streambuf con gzip_decompressor(), cómo acceder línea por línea desde el archivo
- 28. leer una línea usando fscanf()
- 29. Leer en archivo de texto línea por línea php - no se detectó nueva línea
- 30. leyendo un archivo de texto en R línea por línea
¿Puede dar más contexto? ¿Que estás tratando de hacer? –
Ver: http://ant.apache.org/manual/Types/filterchain.html#headfilter –
Gracias @martin con la ayuda de filterchain y head filter, puedo leer los datos del archivo. – rashok