通过删除中间的换行符,基于正则表达式模式匹配在 Unix 中加入文本文件中的两行
Join two lines in a text file in Unix based on regex pattern matching by removing the newline character in between
我想在 Unix 中对文件执行以下查找和替换操作
Find: (\n)(^[^T])
Replace: \t
例如,
Time table
DataColumn
变成
Time table DataColumn
这适用于像 TextPad 这样的文本编辑器,但是,有什么方法可以在单行命令中做到这一点吗?例如,类似于:
sed 's/\(\n\)\(^[^T]\)/\t/g' tmpfile2.txt
这可能对你有用 (GNU sed):
sed 'N;s/\n\([^T]\)/\t/;P;D' file
这会用制表符和整个文件中的非 T
字符替换换行符后跟非 T
字符。
使用perl:
perl -0pe 's/\n/\t/' file
Time table DataColumn
既然建议了sed和perl,那么awk来了:
awk '/^T/{value=[=10=]; getline; [=10=]= value "\t" [=10=];} {print}'
我想在 Unix 中对文件执行以下查找和替换操作
Find: (\n)(^[^T])
Replace: \t
例如,
Time table
DataColumn
变成
Time table DataColumn
这适用于像 TextPad 这样的文本编辑器,但是,有什么方法可以在单行命令中做到这一点吗?例如,类似于:
sed 's/\(\n\)\(^[^T]\)/\t/g' tmpfile2.txt
这可能对你有用 (GNU sed):
sed 'N;s/\n\([^T]\)/\t/;P;D' file
这会用制表符和整个文件中的非 T
字符替换换行符后跟非 T
字符。
使用perl:
perl -0pe 's/\n/\t/' file
Time table DataColumn
既然建议了sed和perl,那么awk来了:
awk '/^T/{value=[=10=]; getline; [=10=]= value "\t" [=10=];} {print}'