我在 txt 文件中存储的列中有一组值,
A13R
W234H
Q1H
我想要的是用制表符分隔第一个字符和最后一个字符,就像这样
A "\t" 13 "\t" R
W "\t" 234 "\t" H
我尝试过的当然失败了
tr "" "\t" <test.txt>test2.txt
你能在bash中提出一些建议吗?
这行得通吗?
sed 's/^./&\t/;s/.$/\t&/' file
纯重击;使用子字符串扩展:
while read line ; do
echo -e "${line:0:1}\t${line:1:-1}\t${line: -1:1}"
done < data.txt
由于它在您的问题中被标记,您可以perl
像这样的用户:
perl -pi -e 's/(.)(.*)(.)/\1\t\2\t\3/' < in.txt > out.txt
小心使用相同的文件进行输入和输出,如您的tr
示例。请记住,您的 shell 将在执行命令之前打开输入和输出文件。输出文件是clobbered,因此当您的命令运行时,它会找到一个空文件。有一些工具可以解决这个问题,比如sponge
,但是使用两个不同的文件名同样容易。