生成一个 .tab 文件,文件名和路径由制表符分隔
generate a .tab file with filenames and paths separated by tab
我刚刚开始学习 linux CLI。我正在使用 snippy 工具来比较需要 .tab 格式文件的多个文件。此制表符格式的文件应由制表符 (\t) 分隔的路径和文件名组成。
我有 运行 这两个命令分别生成文件名和路径列表。
find $(pwd)/*.fna > /home/fan/onas/filenames.tab
和
ls > filenames.tab
但是每当我 运行 这个命令检查文件中的选项卡时。文件中不存在制表符 (\t)。
cat -vet filenames.tab
我也用这个命令把\n替换成\t。但是这里不行。
sed 's/\n/\t/g' filenames.tab > file2.tab
简而言之,我试图生成一个文件名和路径由制表符或 .tab 格式分隔的文件。有人可以帮我吗?
谢谢
命令printf
...
printf "%s\t" $(ls -A $(pwd)) >files.tab
...格式化 ls -A
的输出(也是隐藏文件),用制表符分隔到 (>
) files.tab.
If your printf
also supports -v
then you can do...
printf -v FILES "%s\t" $(ls -A $(pwd))
echo ${FILES}
But the tabs sadly get lost. Writing it to a file like in the first example corrects it...
printf "%s\t" ${FILES} >files.tab
想知道为什么只有一个 %s\t
?嗯,它就像一个数组上的 foreach
。对于空格分隔列表 printf
中的每个元素,执行 %s\t
并丢弃其他空格。
我刚刚开始学习 linux CLI。我正在使用 snippy 工具来比较需要 .tab 格式文件的多个文件。此制表符格式的文件应由制表符 (\t) 分隔的路径和文件名组成。
我有 运行 这两个命令分别生成文件名和路径列表。
find $(pwd)/*.fna > /home/fan/onas/filenames.tab
和
ls > filenames.tab
但是每当我 运行 这个命令检查文件中的选项卡时。文件中不存在制表符 (\t)。
cat -vet filenames.tab
我也用这个命令把\n替换成\t。但是这里不行。
sed 's/\n/\t/g' filenames.tab > file2.tab
简而言之,我试图生成一个文件名和路径由制表符或 .tab 格式分隔的文件。有人可以帮我吗? 谢谢
命令printf
...
printf "%s\t" $(ls -A $(pwd)) >files.tab
...格式化 ls -A
的输出(也是隐藏文件),用制表符分隔到 (>
) files.tab.
If your
printf
also supports-v
then you can do...
printf -v FILES "%s\t" $(ls -A $(pwd))
echo ${FILES}
But the tabs sadly get lost. Writing it to a file like in the first example corrects it...
printf "%s\t" ${FILES} >files.tab
想知道为什么只有一个 %s\t
?嗯,它就像一个数组上的 foreach
。对于空格分隔列表 printf
中的每个元素,执行 %s\t
并丢弃其他空格。