gpt4 book ai didi

bash - 如何阻止 bash 在 vi​​m 中的每个字母前添加 ^@

转载 作者:行者123 更新时间:2023-11-29 09:46:41 24 4
gpt4 key购买 nike

一个问题无缘无故地发生在之前有效的代码中。

myfile.csv中有一些数据

MP 0,20,60,200,60,95,100,1,20,50,30,20,20,250,115,200,0,8,85,150,465817

MP 1,17.89,60,200,60,93.945,100,1,20,50,30,20,20,250,115,200,0,10,85,150,465927

MP 2,16.33,60,200,60,93.16,100,1,20,50,30,20,20,250,115,200,0,12,85,150,464987

MP 3,15.12,60,200,60,92.56,100,1,20,50,30,20,20,250,115,200,0,14,85,150,463440

...

我提取了文件的最后 25 行

tail -n 25 myfile.csv > test1.txt

当我做的时候

cat test1.txt

...
MP 16,20,60,200,60,95,100,1,20,120,30,20,20,250,115,200,0,8,85,150,529469
MP 17,20,60,200,60,95,100,1,20,130,30,20,20,250,115,200,0,8,85,150,534335

没问题...但我想进入文本编辑器,每个字母都以 ^@ 开头:

vim test1.txt

^@M^@P^@ ^@0^@,^@2^@0^@,^@6^@0^@,^@2^@0^@0^@,^@6^@0^@,^@9^@5^@,^@1^@0^@0^@,^@1^@,^@2^@0^@,^@5^@0^@,^@3^@0^@,^@2^@0^@,^@2^@0^@,^@2^@5^@0^@,^@1^@1^@5^@,^@2^@0^@0^@,^@0^@,^@8^@,^@8^@5^@,^@1^@5^@0^@,^@4^@6^@5^@8^@1^@7^@

问题是想要进行模式搜索(该行的第一个词),但似乎因此无法正常工作

home > awk '/MP 0/{print}' test1.txt
home >

此外,我想在我的 awk 中添加一个参数:

home > cat mp
0
home > awk "/MP `cat mp`,/{print}" test1.txt
home >

你知道这个错误是从哪里来的吗?

谢谢

编辑

.csv 文件在 Excel 2007 中保存为“CSV (DOS)”

通过将其保存为“CSV”它可以工作=>编码不同

否则,在 vim 中打开它时,执行 :e++enc=utf16 以使用 UTF-16 编码重新加载文件,然后(假设空字节消失)执行 :set fenc=utf-8 并保存文件。 (感谢@L3viathan 的回答)

最佳答案

我认为你的编码搞砸了。您的文件可能是使用 UTF-16 编码保存的,但由于某种原因,字节顺序标记 (0xFEFF) 丢失了。

在 vim 中打开后,执行 :e++enc=utf16 以使用 UTF-16 编码重新加载文件,然后(假设空字节消失)执行 :set fenc =utf-8 并保存文件。

关于bash - 如何阻止 bash 在 vi​​m 中的每个字母前添加 ^@,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37111140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com