^ A和^ B分隔的值

时间:2015-05-26 20:34:07

标签: linux unix delimiter delimited-text

我的文件内容由^B^A值分隔。此文件的扩展名为.tsv,但值由^A^B分隔。我想使用相同的分隔值为此文件添加更多行,但我不确定^A^B的值是什么。

我四处阅读,我认为^A也可以表示为\001

enter image description here

enter image description here

我不确定如何重新制作栏杆^A^B。我尝试输入contrl + Acontrol + B,但我没有得到相同的输出。也试过\ 001但我似乎还无法重新创建它。

2 个答案:

答案 0 :(得分:2)

对于ASCII控制字符1和2,

Rational^A分别为caret notation

没有通用的方法来输入这些内容。以下是一些选项:

  • 击: ^B

    这会附加" foo echo $'foo\001bar\002baz' >> file^A baz"到文件。

  • Vim: Ctrl + V Ctrl + A

    在插入模式下,这会插入^B(类似地为B)

  • Emacs: Ctrl + Q Ctrl + A

    这会插入^A(类似于B)

您也可以在任何图形编辑器中复制粘贴这些字符。但是,如果使用基于终端的文本编辑器,则必须使用编辑器的键盘控件而不是鼠标来复制/粘贴它们。

答案 1 :(得分:2)

您可以使用“tr”命令制作临时文件,编辑它然后将其恢复为原始文件。要求您有两个不在原始数据中的字符(在此示例中为〜和%)。

首先翻译以消除违规字符:

tr "\001\002" "~%" < original-File > temp-file

根据需要编辑“临时文件”。

翻译回原文:

tr "~%" "\001\002" < temp-file > modified-file

您可以查看原件并检查您的工作:

hexdump -C file