我有一个.tsv文件:https://drive.google.com/open?id=0B9RZ9U8YCSPac2ZJMkpfanNxS0k
我需要使用sed命令创建一个包含.tsv文件信息的HTML表。
我尝试了多个命令,如:
awk '{print "<tr>\n<td>"$1 $2"</td><td>"$3 $4"</td><td>"$5 $6"</td><td>"$7"</td><td>"$8$9$10"</td><td>"$11"</td>\n</tr>}' employees.tsv
但是考虑到所有专栏都没有相同数量的单词,它不起作用。
每列用制表符分隔\ t。如果您以hexa打开文件,您将看到所有09是\ t。
所以我想我必须使用表格来正确创建表格,但我仍然无法找到该命令。
我希望你们中的一些人可以帮助我。
答案 0 :(得分:0)
我认为你可以用几个coerce_float
命令来实现。
sed
这是基本想法。我会选择一个脚本,当然:)
请注意第三行上的sed -i 's/^/<TR><TD>/' employees.tsv
sed -i 's/$/<\/TD><\/TR>/' employees.tsv
sed -i 's/\t/<\/TD><TD>/g' employees.tsv
echo '<TABLE>' > table.html
cat employees.tsv >> table.html
echo '</TABLE>' >> table.html
用于替换行中的每个匹配项,并使用正则表达式运算符/g
和^
分别匹配行的开头和结尾。< / p>
如果您想要使用完整的sed,请将以下$
和cat
替换为:
echo
编辑:要将其放入脚本中,请使用以下命令:
sed -i "1s/^/<TABLE>/" employees.tsv
sed -i "\$a<\/TABLE>" employees.tsv
然后,您可以调用#!/usr/bin/sed -f
s/^/<TR><TD>/
s/$/<\/TD><\/TR>/
s/\t/<\/TD><TD>/g
1s/^/<TABLE>/
$a<\/TABLE>
替换就地,或./myscript employees.tsv -i
让原始文件单独使用。
我正在添加这个脚本,因为我在最后一行中有点挣扎。原来./myscript employees.tsv > employees.html
是从shell中逃脱\
的。最后很明显。