2010-12-07 64 views

Répondre

0

Utilisation d'expressions régulières devraient faire le travail à court de cette:

word\r\n avec word remplacer

Comment est-ce exactement fait dépend de votre environnement/éditeur/outils. Vous avez mentionné cf + lf, qui indique que vous utilisez Windows. Par exemple, si vous utilisez Notepad++, il a un support de regex intégré et vous pouvez utiliser ces fonctions pour atteindre votre objectif.

Mise à jour: J'ai essayé cette variante cela fonctionne:

Télécharger Vim pour Windows.

Ouvrez votre fichier dans Vim.

Dans ce document, exécutez la commande suivante:

%s/\v([[:digit:]]+NPN[[:alpha:]]+)\n/\1 /g 

Explication:

%s - work for all lines 
\v - easier regex manipulation regarding backslashes 
([[:digit:]]+NPN[[:alpha:]]+) - match some digits, then NPN, then letters and capture this 
\n - match end of line 
\1 - replace everything with first group and two spaces 
g - do this many times for each line (this is basically optional) 
+0

Eh bien, il y a beaucoup de différentes formes de mon mot spécifique. par exemple si mon mot clé est NPN il y a des mots comme 02NPNPAGLUBE, 12NPNSEALANT et .... mais le problème est à la fin de tous ces mots, il y a une marque de paragraphe (entrer le caractère) et je veux l'éliminer et mettre 2 les espaces. Comment? Comment puis-je pointer vers un mot? – odiseh

0

Je suppose que vous vous demandez comment faire un programme. LF et CR sont des caractères et en tant que tels, ils ont un code ASCII assigné (10, 13). vous devrez charger le fichier texte, le copier dans un nouveau tampon mot par mot et chaque fois que vous rencontrerez le mot que vous voulez remplacer - vérifiez s'il est suivi de 10,13 et ne copiez pas ces caractères si c'est le cas.
puis réécrivez le nouveau tampon dans le fichier.

0

Si vous voulez convertir CRLF LF:

sed 's/.$//'    # assumes that all lines end with CR/LF 

Si vous souhaitez supprimer CRLF tout à fait

cat file1.txt | tr '\n' ' ' # join the lines with a space 
cat file1.txt | tr -d '\n' # join the lines without a space 

Vous pourriez avoir à convertir les fins de ligne à unix (CRLF LF) premier puis faites la traduction.