将文件分隔符从TAB和管道(|)更改为CTRL-A

时间:2014-06-28 05:14:28

标签: awk sed

我有两个.txt个文件,一个用TAB作为字段分隔符,另一个用|作为字段分隔符。

我想将分隔符从TAB更改为CTRL-A并将.txt文件另存为第一个文件,对于第二个文件,将分隔符从|更改为{ {1}}并保存为CTRL-A文件。

这两个文件是单独的文件。

我们如何使用.txtawk

来实现

3 个答案:

答案 0 :(得分:3)

对于文件一,请尝试:

cat file1 | sed -e 's/\t/\x01/g' >file1.txt

对于文件二,请尝试

cat file2 | sed -e 's/\|/\x01/g' >file2.txt

答案 1 :(得分:2)

这对tr

非常有用
tr '\t' '\001' <file1 >file1-new

这将从file1上的水平制表符执行转换,并将结果输出到file1-new。你可以用管子做同样的事情。

答案 2 :(得分:0)

使用perl的替代方案:

更换管道:

echo "a|b|c" | perl -pe '$c=chr(1); s/\|/$c/g' | cat -A
a^Ab^Ac$

更换标签:

echo -e  "a\tb\tc" | perl -pe '$c=chr(1); s/\t/$c/g' | cat -A
a^Ab^Ac$