excel - 填充空白字段

标签 excel bash perl awk sed

我有一个非常大的制表符分隔文件(大约 1200 万行),如下所示:

F1    1
      2
      700
F2    89
      900
      10000
      19
F3    100
      60001

有什么办法可以让我这样:

F1    1
F1    2
F1    700
F2    89
F2    900
F2    10000
F2    19
F3    100
F3    60001

我试过使用 sed 脚本,但它需要很长时间。

例如

sed 's/^/F1/' FILE | cut -c3- > FILE1 ; mv FILE1 FILE

我可以在 excel 中使用

=IF(a2=="",c1,a2)

并向下拖动。但是,Excel 只允许我加载一定数量的行。

(假设我已经将“F1”复制到 C1)

肯定有使用 awk 或 sed 的更简单的方法吗?

最佳答案

perl -F'\t' -lane'$h = $F[0] ||= $h; print join "\t", @F'

赋值是右结合的,所以

$h = $F[0] ||= $h;

相当于

$h = ( $F[0] ||= $h );

因此

$F[0] ||= $h;
$h = $F[0];

$F[0] = $h if !$F[0];
$h = $F[0];

关于excel - 填充空白字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40982582/

相关文章:

python - 如何使用 Python 将多个 Excel 工作表从网站下载到 Pandas DataFrame 中

excel - 检查数组是否为空(vba excel)

bash - 如何删除目录以外的所有文件?

BASH 脚本 : when to include the back slash symbol

python - 从 bash 脚本检查 Python 开发文件是否存在

perl 拆分和正则表达式不区分大小写

perl - 如何使用 Perl 将矩阵(成对比较)转换为列?

excel - 自动调整用户表单大小

python - 我如何围绕 ngrep 编写突出显示匹配项的包装器?

python - 尝试获取多个 Excel 电子表格,提取特定数据,将它们全部添加到一个数据框中并将其保存为 csv 文件