相关疑难解决方法(0)

“head”读取/消耗的输入行数可以多于其输出的行数吗?

给定以下 3 个脚本:

  1. printf 'a\nb\nc\n' > file && { head -n 1; cat; } < file
  2. printf 'a\nb\nc\n' | { head -n 1; cat; }
  3. { head -n 1; cat; } < <(printf 'a\nb\nc\n')

我期望每个的输出是:

a
b
c
Run Code Online (Sandbox Code Playgroud)

但对于其中一些系统,在某些系统上,情况并非如此。例如,在 cygwin 上:

$ printf 'a\nb\nc\n' > file && { head -n 1; cat; } < file
a
b
c
Run Code Online (Sandbox Code Playgroud)

$ printf 'a\nb\nc\n' | { head -n 1; cat; }
a
Run Code Online (Sandbox Code Playgroud)

$ { head -n 1; cat; } < <(printf 'a\nb\nc\n')
a …
Run Code Online (Sandbox Code Playgroud)

bash text-processing head

14
推荐指数
1
解决办法
903
查看次数

有效地从文本文件中删除前几行

  • head/tail将需要迭代几乎整个文件(取决于您作为参数提供的行的位置)。然后将该结果复制到新文件并删除旧文件。

  • 我不确定是否sed会迭代整个文件,但您需要将该结果复制到一个新文件并删除旧文件。即使-i(就地)它也会在后台创建一个临时文件,所以同样的事情也适用。

为什么不将指向文件第一行的指针移动到我们想要的行呢?

我们怎么能做这样的事情?我必须在 C 中做吗?还有其他方法吗?

那有意义吗 ??我想错了吗?如果是,为什么?

editors sed awk files

1
推荐指数
1
解决办法
1548
查看次数

标签 统计

awk ×1

bash ×1

editors ×1

files ×1

head ×1

sed ×1

text-processing ×1