我正在寻找一种从匹配正则表达式模式的字符串中删除特定字符的方法。我将带有换行符的文本存储在一个制表符分隔的文件中,该文件应该每行有一个记录,我试图用空格替换所有换行符。最后一列(这是一个带有字母数字键的短列)中不会出现换行符。
解决它恕我直言的方法是替换\n
以下模式中的每个实例:
[^\t]*\t[^\t]*
到目前为止,我的解决方案使用三个步骤:
- 将“好”替换
\n
为文本的其余部分中不存在的特殊字符串(例如长数字),使用s/\([^\t]*\t{x}[^\t]*\)\n/\1#12398754987235649876234#/g
比x
我的文件中的预期列数少一 \n
用空格替换所有(“坏”)- 用新行替换长号
但我有相当多的文本文件,我正在寻找一种方法来一步完成 。sed
示例输入:
foo \t Each multiplex has screens allocated \n
to each studio. \t abc \n
bar \t The screens need filling. \t bcd \n
123 \t Studios have to create product to fill \n
their screen, and the amount of good product is limited. \t cde \n
输出:
foo \t Each multiplex has screens allocated to each studio. \t abc \n
bar \t The screens need filling. \t bcd \n
123 \t Studios have to create product to fill their screen, and the amount of good product is limited. \t cde \n