如何用另一个单词和一个动作替换文本文件中的单词?

大家好 假设我们有一个文本文件(file1.txt) file1.txt包含许多单词和空格并输入字符(cR + LF)。 我想用输入字符替换后面的特定单词,并将其替换为该单词。我的意思是消除cr + lf字符。 怎么样 ? 谢谢     
已邀请:
我假设您正在询问如何以编程方式执行此操作。 LF和CR是字符,因此它们具有分配的ascii代码(10,13)。您需要加载文本文件,逐字复制到新的缓冲区,每当遇到要替换的单词时 - 检查它是否后跟10,13,如果是,则不要复制这些字符。 然后将新缓冲区写回文件。     
使用正则表达式应该简化这个: 用
word
代替
wordrn
如何完成这取决于您的环境/编辑器/工具。你提到了cf + lf,暗示你正在使用Windows。 例如,如果您使用Notepad ++,它具有内置的正则表达式支持,您可以使用这些工具来获取目标。 更新:我尝试了这个变种它的工作原理: 下载Vim for Windows。 在Vim中打开您的文件。 在其中,发出以下命令:
%s/v([[:digit:]]+NPN[[:alpha:]]+)n/1  /g
说明:
%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)
    
如果要将CRLF转换为LF:
sed 's/.$//'               # assumes that all lines end with CR/LF
如果您想完全删除CRLF
cat file1.txt | tr 'n' ' '   # join the lines with a space
cat file1.txt | tr -d 'n'    # join the lines without a space
您可能必须先将行结尾转换为unix(CRLF到LF),然后再进行转换。     

要回复问题请先登录注册