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

Awk 将文件分隔符从制表符和管道(|)更改为CTRL-A,awk,sed,Awk,Sed,我有两个.txt文件,一个用TAB作为字段分隔符,另一个用|作为字段分隔符 我想将第一个文件的分隔符从选项卡更改为CTRL-A,并另存为.txt文件,第二个文件的分隔符从|更改为CTRL-A并另存为.txt文件 这两个文件是独立的文件 我们如何使用awk或sed执行此操作?对于文件一,请尝试: cat file1 | sed -e 's/\t/\x01/g' >file1.txt 对于文件2,请尝试 cat file2 | sed -e 's/\|/\x01/g' >file2.t

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

我想将第一个文件的分隔符从
选项卡更改为
CTRL-A
,并另存为
.txt
文件,第二个文件的分隔符从
|
更改为
CTRL-A
并另存为
.txt
文件

这两个文件是独立的文件

我们如何使用
awk
sed
执行此操作?

对于文件一,请尝试:

cat file1 | sed -e 's/\t/\x01/g' >file1.txt
对于文件2,请尝试

cat file2 | sed -e 's/\|/\x01/g' >file2.txt
对于文件1,请尝试:

cat file1 | sed -e 's/\t/\x01/g' >file1.txt
对于文件2,请尝试

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

另一种方法是使用
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$

另一种方法是使用
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$

这对
tr
很有用:

tr '\t' '\001' <file1 >file1-new
tr'\t'\001'文件1新建

这将从file1上的水平选项卡执行转换,并将结果输出到file1 new。你可以用管道做同样的事情。

这是
tr
的一个很好的用途:

tr '\t' '\001' <file1 >file1-new
tr'\t'\001'文件1新建

这将从file1上的水平选项卡执行转换,并将结果输出到file1 new。您可以对管道执行相同的操作。

请参阅,其中包含awk和sed的相关示例。Ctrl-A是什么意思?它代表什么字符?请看它包含awk和sed的相关示例。Ctrl-A是什么意思?它代表什么角色?我必须那样做。。。我永远无法让ctrl+v,ctrl+a工作:-)我必须这样做。。。我永远无法让ctrl+v、ctrl+a工作:-)