Agregue un texto / etiqueta específico después de cada pocas líneas en Bash -- mmand-line campo con bash campo con sed campo con awk campo con text camp askubuntu Relacionados El problema

Add specific text/tag after every few lines in bash


3
vote

problema

Español

Tengo un archivo de texto donde tengo que agregar etiquetas (en forma de texto normal) a un archivo .txt.

Por ejemplo, supongamos que tengo un archivo de texto como este:

  a b c d e f g h   

Quiero agregar las etiquetas <hello> y abcdefhijklmnabcdefghijklmn2 Antes y después de cada 3 filas, respectivamente, y haz que se vea algo así:

  <hello>  a  b  c </hello> <hello>  d  e  f </hello> <hello>  g  h </hello>    

¿Cómo puedo lograr esto?

Original en ingles

I have a text file where I have to add tags (in the form of normal text) to a .txt file.

For example, suppose I have a text file like this:

a b c d e f g h 

I want to add the tags <hello> and </hello> before and after every 3 rows, respectively, and make it look somewhat like this:

<hello>  a  b  c </hello> <hello>  d  e  f </hello> <hello>  g  h </hello>  

How can I achieve this?

              
   
   

Lista de respuestas

3
 
vote

Aquí hay una forma:

  $ sed -e '1~3i<hello>' -e '3~3{$!a</hello>' -e'}' -e '$a</hello>' a.txt <hello> a b c </hello> <hello> d e f </hello> <hello> g h </hello>   

Explicación:

  • 1~3i<hello> Insertar <hello> Cada tercera línea, comenzando en la línea 1
  • 3~3a</hello> agrega </hello> cada tercera línea, comenzando en la línea 3, pero excluyendo la última línea del archivo $
  • en la última línea $ , agregue la etiqueta de cierre independientemente del número de línea

Si el archivo contiene un múltiplo exacto de 3 líneas, entonces es más sencillo, solo

  sed -e '1~3i<hello>' -e '3~3a</hello>' a.txt   
 

Here's one way:

$ sed -e '1~3i<hello>' -e '3~3{$!a</hello>' -e'}' -e '$a</hello>' a.txt <hello> a b c </hello> <hello> d e f </hello> <hello> g h </hello> 

Explanation:

  • 1~3i<hello> insert <hello> every third line, starting at line 1
  • 3~3a</hello> append </hello> every third line, starting at line 3 but excluding the last line of the file $
  • at the last line $, add the closing tag regardless of line number

If the file contains an exact multiple of 3 lines then it's simpler - just

sed -e '1~3i<hello>' -e '3~3a</hello>' a.txt 
 
 
         
         

Relacionados problema

0  Ubuntu Gnome 15.04 Texto blanco en blanco BG en el centro de software Ubuntu  ( Ubuntu gnome 15 04 white text on white bg in ubuntu software center ) 
Tengo ubuntu gnome 15.04 instalado ahora mismo en mi PC. Tengo este problema donde en Ubuntu Software Center cuando selecciono un elemento, aparece como tex...

1  ¿Cómo puedo hacer que el cursor de texto en X Windows sea más fácil de ver?  ( How can i make the text cursor in x windows easier to see ) 
El cursor de texto en X Windows es demasiado delgado para que pueda ver fácilmente. Sería genial si pudiera hacer que el cursor de texto sea más ancho para qu...

34  ¿Cómo arranco el verdadero modo de texto?  ( How do i boot into true text mode ) 
He encontrado formas de deshabilitar gdm o abcdefhijklmnabcdefghijklmn1 o lo que sea 11.10 usos, pero no puedo encontrar una manera de obtener una verdade...

0  Guardar contenidos web en un archivo de texto  ( Save webpage contents in a text file ) 
Tengo seguidores WELBINK: http://www.rcsb.org/ pdb / explore / secuencetext.do? stationid = 1aps & amp; chainid = a Deseo guardar solo ciertas partes de...

0  El texto se está equivocando en la pantalla  ( Text is getting messed up on the screen ) 
Mi texto se está equivocando en la pantalla de forma aleatoria. Dependiendo de dónde hago clic o qué hago un mensaje de texto en la pantalla se ensucia. No pu...

2  Selección del problema de texto [cerrado]  ( Selecting text problem ) 
cerrado . Esta pregunta necesita detalles o claridad . Actualmente no está aceptando respuestas. ...

0  Texto revierte la sesión remota de GNOME  ( Text reverses on remote gnome session ) 
Tengo dos computadoras que ejecutan 10.4. La primera máquina es un escritorio con cable con SSHD. El segundo es una computadora portátil con conexión WiFi con...

6  Cambié el tamaño del texto a 0 en GNOME Tweak  ( I changed text size to 0 in gnome tweak ) 
Acabo de cambiar el tamaño de texto a 0 en la aplicación Gnome Tweak. Entonces todos los textos en la aplicación han ido. Así que ya no puedo cambiar el tamañ...

34  ¿Hay soporte de panel dividido en GEDIT?  ( Is there split pane support in gedit ) 
Sé que otros editores de texto como Bloc de notas ++ habilitan el panel dividido para editar a los archivos de lado a lado. ¿Hay alguna forma en que pueda agr...

0  ¿Cómo puedo forzar todo el texto en una celda en la página siguiente en Office de Libre / Open Office?  ( How can i force all text in a cell onto the next page in libre office open off ) 
Cuando hago una tabla en la oficina de Libre, y el texto en una celda es demasiado largo para la página, divide el texto en varias páginas: ¿Cómo puedo h...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos