我sed
用来将文件的内容连接为:
cat source.c | sed -e :a -e '$!N; s/\n/ /; ta'
该文件包含由管道分隔的相关信息[一系列字符串] |
。我想将其更改IFS
为管道|
并获取输出可能是通过管道传输到新的,IFS
从而将新的格式化文件显示到标准输出。
连接后的 source.c 实例:
void f0 (***) | void f1 (***) | void f2 (***)| void f3 (***)
我希望通过设置来实现IFS
:
void f0 (***)
void f1 (***)
void f2 (***)
void f3 (***)
提前感谢您的回复。我不确定文件是否可能,我不想在这里涉及变量或数组。
编辑:源文件在开始时出现了一些类似这样的内容:
void
f0
(***) |
void
f1
(***) |
void f2 (***) |
void f3 (***)
所以首先我连接然后我将每个单词组加倍空格,然后使用管道作为分隔符进行拆分。
sed -e :a -e '$!N; s/\n/ /; ta' source.c | sed -e 's/ */ /g' -e 's/ *//'
sed
和 awk
替代品完美地完成了这项工作。
根据第一次编辑时的赞成票选择的答案:)。正如其中一个答案所建议的那样,我将保持问题不变,以便其他人找到这些简单的替代方案,而不是弄乱IFS
.