AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-100397

roaima's questions

Martin Hope
Chris Davies
Asked: 2025-03-11 07:05:56 +0800 CST

从 JSON 对象数组中提取两个(或更多)相关值

  • 6

考虑一个使用 JSON 对象的故意示例,例如此例,我想将许多数组对象中的每一个的相关 、 和 字段提取id到firstnameshelllastname变量中以便进一步(非 JSON)处理。

{
  "customers": [
    {
      "id": 1234,
      "firstname": "John",
      "lastname": "Smith",
      "other": "fields",
      "are": "present",
      "here": "etc."
    },
    {
      "id": 2468,
      "firstname": "Janet",
      "lastname": "Green",
      "other": "values",
      "are": "probably",
      "here": "maybe"
    }
  ]
}

对于简单的数据我可以使用这个,

jq -r '.customers[] | (.id + " " + .firstname + " " + .lastname)' <data.json |
    while IFS=' ' read id firstname lastname
    do
        # More processing, but omitted for the example
        printf '%s -- %s -- %s\n' "$id" "$firstname" "$lastname"
    done

输出

1234 -- John -- Smith
2468 -- Janet -- Green

但当然,如果使用双管firstname值,例如,这将失败Anne Marie。将分隔符更改为另一个字符,例如,#感觉更像是敷衍,而不是解决方案,但可以接受。

对于更复杂的情况,我可能会挑选出值列表id,然后通过回头提取相应的firstname和lastname元素来以速度换取准确性。就像这样:

jq -r '.customers[].id' <data.json |
    while IFS= read id
    do
        block=$(jq -r --arg id "$id" '.customers[] | select(.id == $id)' <data.json); 

        firstname=$(jq -r '.firstname' <<<"$block")
        lastname=$(jq -r '.lastname' <<<"$block")

        # More processing, but omitted for the example
        printf '%s -- %s -- %s\n' "$id" "$firstname" "$lastname"
    done

输出

1234 -- John -- Smith
2468 -- Janet -- Green

但是,这两种方法都不是正确且高效的。虽然我不会频繁运行实际代码,但我想知道是否有更合适的方法可以安全有效地将多个数据元素从 JSON 对象结构中取出并放入 shell 变量中?

bash
  • 2 个回答
  • 47 Views
Martin Hope
Chris Davies
Asked: 2024-12-13 23:18:15 +0800 CST

将多个 JSON 数据块合并为一个实体

  • 10

我正在使用一个 API(来自SyncroMSP),它返回分页的 JSON 数据。我可以获取页数,并且可以使用诸如 之类的工具获取数据curl。每个块都是有效的 JSON,但它仅包含我需要的总数据的子集。

使用jq或其他方式如何将tickets[]这些分页数据块的元素合并回单个 JSON 文档?

以下是三个示例块。tickets[]数组经过大量编辑,以解决此问题,实际上最多包含 25 个条目,并且每个票证条目包含更多元素,包括至少几个数组。

JSON 示例块 1 ( part_1.json)

{
  "tickets": [
    {
      "number": 4445,
      "subject": "Your mailbox is almost full"
    },
    {
      "number": 4444,
      "subject": "Cannot VPN"
    }
  ],
  "meta": {
      "total_pages": 3,
      "page": 1
  }
}

JSON 示例块 2 ( part_2.json)

{
  "tickets": [
    {
      "number": 4395,
      "subject": "Trados Studio issue"
    },
    {
      "number": 4394,
      "subject": "Daily Backup Report(No Errors)"
    }
  ],
  "meta": {
      "total_pages": 3,
      "page": 2
  }
}

JSON 示例块 3 ( part_3.json)

{
  "tickets": [
    {
      "number": 4341,
      "subject": "Daily Backup Report(No Errors)"
    },
    {
      "number": 4340,
      "subject": "Windows Updates on VMs"
    }
  ],
  "meta": {
      "total_pages": 3,
      "page": 3
  }
}

在这种情况下,预期结果将是这样的:

{
  "tickets": [
    {
      "number": 4445,
      "subject": "Your mailbox is almost full"
    },
    {
      "number": 4444,
      "subject": "Cannot VPN"
    },
    {
      "number": 4395,
      "subject": "Trados Studio issue"
    },
    {
      "number": 4394,
      "subject": "Daily Backup Report(No Errors)"
    },
    {
      "number": 4341,
      "subject": "Daily Backup Report(No Errors)"
    },
    {
      "number": 4340,
      "subject": "Windows Updates on VMs"
    }
  ]
}

输出也可以包含哈希,因为我只是忽略它,并且哪个值被结转meta并不重要。meta.page

您可以假设它tickets[].number是唯一的,并且您不需要在该级别保留任何顺序tickets[]。实际数据非常复杂,我不想在任何结果代码中声明完整的 JSON 结构。

这是我目前的尝试,但我对 并不是特别擅长jq。有没有更好的方法 - 例如,不调用jq两次,或者能够概括代码,这样我就不需要指定顶级数组的名称(tickets)?

cat part_{1,2,3}.json | jq '.tickets[]' | jq -n '{ tickets:[ inputs ] }'
shell
  • 1 个回答
  • 288 Views
Martin Hope
Chris Davies
Asked: 2023-11-30 23:16:17 +0800 CST

使用 bash extglob 匹配否定模式

  • 7

假设我有一组七个文件:

item1_data
item2_data_more
item3_data
item4_data
item5_data_more
other6_data
other7_data_more

item我想匹配以 开头但不以 结尾的三个more。鉴于这是一个示例场景,您必须接受仅与正匹配模式(或任何简单变体)匹配是不够的item*data?。

我正在使用bash启用extglob。对于简单的情况,手册页中的描述就足够了(“!(pattern‐list)匹配除给定模式之一之外的任何内容”)。然而,在这里我需要实现 的匹配,item但 的负匹配data。我终于找到了一个可行的方法,但我不明白的是为什么它有效但其他方法却失败了。

shopt -s extglob                                                # Enable extended globbing
touch {item{1,3,4},other6}_data {item{2,5},other7}_data_more    # Example data set

ls !(*more)                                                     # Non-"item" files too
item1_data  item3_data  item4_data  other6_data

ls item*!(more)                                                 # All "item" files
item1_data  item2_data_more  item3_data  item4_data  item5_data_more

ls item!(*more)                                                 # Works as required
item1_data  item3_data  item4_data

为什么第二个失败而第三个成功?我认为通配符在任一位置都应该有效 - 但显然不是。有人可以启发我吗?

bash
  • 2 个回答
  • 63 Views
Martin Hope
roaima
Asked: 2023-09-13 17:50:13 +0800 CST

使用 mdadm 创建 RAID1 镜像会警告“创建失败”,但成功完成

  • 8

当我创建mdadmRAID 1 阵列时,命令成功完成,但我收到警告。

系统特征(Pi 3 上的 Debian/Raspbian“靶心”):

uname -a
Linux pi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux

mdadm --version
mdadm - v4.1 - 2018-10-01

head -n4 /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"

工作示例:

dd if=/dev/zero bs=1M count=128 >/tmp/r1.img               # 128MB will do nicely
cp /tmp/r1.img /tmp/r2.img                                 # Another slice
for r in 1 2; do losetup /dev/loop$r /tmp/r$r.img; done    # Associate block devices

mdadm --create /dev/md0 --level=raid1 --raid-devices=2 --metadata=default /dev/loop1 /dev/loop2

警告信息:

mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
mdadm: array /dev/md0 started.

退出状态 ( $?) 为零,即成功完成。

cat /proc/mdstat几分钟后,状态检查 ( ),允许新的 RAID 阵列同步:

Personalities : [raid1]
md0 : active raid1 loop2[1] loop1[0]
      130048 blocks super 1.2 [2/2] [UU]

unused devices: <none>

引用的“文件”确实存在:

ls -l /sys/module/md_mod/parameters/new_array
--w------- 1 root root 4096 Sep 13 10:34 /sys/module/md_mod/parameters/new_array

以下是运行中的相关部分strace mdadm …:

openat(AT_FDCWD, "/run/mdadm/creating-md0", O_RDWR|O_CREAT|O_LARGEFILE, 0600) = 4
close(4)                                = 0
openat(AT_FDCWD, "/sys/module/md_mod/parameters/new_array", O_WRONLY|O_LARGEFILE) = 4
write(4, "md0", 3)                      = -1 EINVAL (Invalid argument)
close(4)                                = 0
write(2, "mdadm: Fail create md0 when usin"..., 74mdadm: Fail create md0 when using /sys/module/md_mod/parameters/new_array
) = 74
unlink("/run/mdadm/creating-md0")       = 0

鉴于元设备已成功创建,该术语Fail create在此上下文中意味着什么?

mdadm
  • 1 个回答
  • 61 Views
Martin Hope
roaima
Asked: 2022-03-31 14:38:03 +0800 CST

是 POSIX 标准的“egrep”的一部分

  • 2

该egrep命令已被弃用,取而代之的是grep -E.

POSIX 定义grep包括以下注释,

这grep已以向上兼容的方式得到增强,以提供历史egrep和fgrep命令的确切功能。标准开发人员的明确意图是将三个greps 合并为一个命令。

旧的egrep和fgrep命令可能会在未来很多年内作为实现扩展得到支持,允许历史应用程序在不修改的情况下运行。

但是,它本身没有 POSIX 命令定义条目egrep。

本节是否确认这egrep是一个公认的 POSIX 命令(即使已被弃用),还是仅指出该命令曾经存在并且在可预见的将来应该(不同于必须)支持?

换一种说法,egrepPOSIX的情况如何?

grep posix
  • 1 个回答
  • 177 Views
Martin Hope
roaima
Asked: 2022-01-09 05:20:55 +0800 CST

为什么“find -delete”意味着“-depth”?

  • 8

GNU 的手册页find清楚地警告说 using-delete暗示-depth. 但是,我找不到对此要求的任何解释:

-delete删除文件; 如果删除成功,则为 true。如果删除失败,则会发出错误消息。[…] 使用-delete自动打开该-depth选项。

find --version
find (GNU findutils) 4.8.0

这隐含地是一个后序遍历:

find /path -type f -delete

但这是一个前序遍历,通常的遍历方法find:

find /path -type f -exec rm -f {} +

如果我想使用-prune我不能使用-delete,我必须使用更麻烦-exec rm {} +的,但最终效果似乎是一样的。

该-delete操作不会删除目录,那么为什么find -delete需要暗示-depth?

find rm
  • 1 个回答
  • 581 Views
Martin Hope
roaima
Asked: 2019-11-21 02:16:22 +0800 CST

是否为每个文件重置了 rsync 块压缩字典?

  • 6

是在不rsync -z考虑前一个文件的情况下压缩每个文件的块,还是为每个文件重置压缩字典以便独立处理?

例如,考虑将一个可压缩文件one.txt及其相同副本传输到远程服务器,其中两个文件都不存在:

cp -p one.txt two.txt
rsync -az one.txt two.txt remote:

zlib压缩层是独立处理one.txt和处理的,还是该级别的数据传输只是一个连续的流,所以它two.txt会学习一个有用的压缩字典one.txt,它可以应用于two.txt?

或者,我是否完全误解了zlib压缩算法,以至于(例如)字典总是为每个新块重置?

我试过查看rsync调试输出rsync -avvvvz --debug=IO1,IO2,IO3,IO4 --msgs2stderr,但看不到任何与压缩层特别相关的内容。

(这是对我在 ServerFault 上的回答的评论线程的跟进。)

rsync
  • 1 个回答
  • 208 Views
Martin Hope
roaima
Asked: 2019-08-07 04:40:37 +0800 CST

执行 selinux 策略的 rsync 守护进程 rsync_export_all_ro 仍然阻止访问 /var/spool/postfix/private/ 下的文件

  • 3

我有许多基于 Debian 的系统,它们使用rsync. 由于多种原因,我不得不部署一个小型 CentOS 7 服务器,并且我想将它添加到我的备份计划中。它不能通过 ssh 使用 rsync 进行备份;相反,我需要使用 rsync 守护进程。

CentOS 在强制模式下启用了 SELinux,所以它让我走上了一条陡峭的学习曲线。

配置rsyncd部分(简化)

[root]
    comment = Filesystem
    path = /
    exclude = /proc/*** /run/*** /sys/*** [...]
    read only = yes
    list = yes
    uid = root
    secrets file = [...]
    ignore errors = no
    ignore nonreadable = no
    refuse options = delete

我相信该过程已正确标记:

ps -eZ | grep rsync
system_u:system_r:rsync_t:s0    26020 ?        00:00:00 rsync

最初,通过守护程序进行备份的尝试rsync失败,出现了我将其归因于 SELinux 标签的各种权限错误。进一步挖掘,我发现了对SELinux 策略的引用,该策略允许rsync守护程序以只读方式导出所有文件:

setsebool -P rsync_export_all_ro 1

这导致了这个集合

getsebool -a | grep '^rsync'
rsync_anon_write --> off
rsync_client --> off
rsync_export_all_ro --> on
rsync_full_access --> off

不幸的是,这仍然不能让我访问系统上的所有文件。具体来说,我有一些/var/spool/postfix/private不可读的文件:

rsync: readlink_stat("/var/spool/postfix/private/defer" (in root)) failed: Permission denied (13)
rsync: readlink_stat("/var/spool/postfix/private/trace" (in root)) failed: Permission denied (13)
rsync: readlink_stat("/var/spool/postfix/private/verify" (in root)) failed: Permission denied (13)
rsync: readlink_stat("/var/spool/postfix/private/proxymap" (in root)) failed: Permission denied (13)
...

/var/spool/postfix/private一个与from相关的示例条目audit2why -a如下。请注意,没有任何条目引用rsync_export_all_ro:

type=AVC msg=audit(1565118203.332:21775): avc:  denied  { getattr } for  pid=26597 comm="rsync" path="/var/spool/postfix/private/scache" dev="dm-0" ino=9148374 scontext=system_u:system_r:rsync_t:s0 tcontext=system_u:object_r:postfix_private_t:s0 tclass=sock_file permissive=0
        Was caused by:
        The boolean rsync_full_access was set incorrectly.
        Description:
        Allow rsync to full access

        Allow access by executing:
        # setsebool -P rsync_full_access 1

我不明白为什么有引用rsync_full_access(我不想设置,也不应该触发)但没有引用rsync_export_all_ro.

为了获得完整的备份,如何将此目录树添加到可以由rsync守护程序导出的文件集中?(并且此更改在重新启动后保持不变。)

centos rsync
  • 1 个回答
  • 1819 Views
Martin Hope
roaima
Asked: 2019-07-06 02:02:15 +0800 CST

[[ expr1 || 之间的区别 expr2 ]] 和 [[ expr1 ]] || [[ expr2 ]]

  • 7

考虑两个条件表达式expr1and expr2,例如$i -eq $jand $k -eq $l。我们可以用bash多种方式来写这个。这里有两种可能

[[ expr1 || expr2 ]]

[[ expr1 ]] || [[ expr2 ]]

我很确定我在这里看到了应该首选第二个的建议,但我找不到支持这一点的证据。

这是一个示例脚本,似乎证明没有区别:

for i in 0 1
do
  for j in 0 1
  do
    for k in 0 1
    do
      for l in 0 1
      do
        if [[ $i -eq $j || $k -eq $l ]]; then printf "1-yes\t"; else printf "1-no\t"; fi
        if [[ $i -eq $j ]] || [[ $k -eq $l ]]; then printf "2-yes\n"; else printf "2-no\n"; fi
      done
    done
  done
done

和输出显示两个条件构造产生相同的结果:

1-yes   2-yes
1-yes   2-yes
1-yes   2-yes
1-yes   2-yes
1-yes   2-yes
1-no    2-no
1-no    2-no
1-yes   2-yes
1-yes   2-yes
1-no    2-no
1-no    2-no
1-yes   2-yes
1-yes   2-yes
1-yes   2-yes
1-yes   2-yes
1-yes   2-yes

使用一种构造优于另一种构造有什么好处吗?

对于加分,相同的问题,但使用||和推广到多个条件&&。例如,[[ expr1 && expr2 || expr3 ]]。

bash
  • 1 个回答
  • 646 Views
Martin Hope
roaima
Asked: 2019-06-18 14:10:50 +0800 CST

模板化读取(如 scanf)

  • 2

我有一个 shell 脚本变量,目前定义如下:

tsource=/backup/%HOST%/%SHARE%/%PERIOD%

我想将此模板与另一个变量匹配,该变量可能具有如下值:

psource=/backup/somehost/someshare/monthly.1

我的目标是生成以下分配,以便稍后在脚本中使用它们进行替换:

vars[HOST]=somehost
vars[SHARE]=someshare
vars[PERIOD]=monthly.1

我应该指出,用户可以覆盖这两个值,我们最终可能会得到不同(但仍然匹配)的形状,这意味着简单的“分割在/”(甚至“分割在标点符号”)是不够的:

tsource=/backup/%PERIOD/where/%HOST%-%SHARE%
psource=/backup/monthly.1/where/somehost-someshare

目的是能够$psource基于提供的模板进行解析$tsource。由于它是实用软件,我并不在乎用户是否试图破坏它——如果提供的参数不足或无效,它会在稍后退出。

看看可能的解决方案,我认为类似的东西sscanf在这里可能有用,这是一种对我来说间接可用的工具。我可以很容易地操作$tsource来提取HOST、SHARE和PERIOD,并派生一个sscanf模板:

grep -Po "(?<=%)[[:upper:]]+(?=%)" <<<"$tsource"           # "HOST" "SHARE" "PERIOD"
tscanf=$(sed -re 's/%[[:upper:]]+%/%s/g' <<<"$tsource")    # "/backup/%s/%s/%s"

这将允许我在 Perl 中应用模板,如下例所示:

perl -MString::Scanf -e '
    $psource = "/backup/somehost/someshare/monthly.1";
    $tscanf = "/backup/%s/%s/%s";
    ($host, $source, $period) = sscanf($tscanf, $psource);
    print "host=$host, share=$share, period=$period\n"
'
# "host=somehost, share=someshare, period=monthly.1"

(如果我要深入研究 Perl,我可能也会sscanf在 Perl 部分中进行模板重写和生成,但现在让我们先停一下。)

但是,编写一个需要perl.

是否有另一种(更好的)解决方案允许我从字符串中为模板中的任意标签映射值,而不涉及快速深入 Perl?

bash perl
  • 2 个回答
  • 2237 Views
Martin Hope
roaima
Asked: 2018-12-22 16:36:31 +0800 CST

ZFS 无法删除目录树

  • 1

Debian 9 (stretch) 在内核 4.15.18-9-pve 上带有 ZFS 0.7.12。我有一个带有数据集的 ZFS 池:

zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     2.81T  39.3T   120K  /rpool
rpool/data                2.81T  39.3T    96K  /rpool/data
rpool/data/vm-101-disk-0  7.74G  39.3T  7.74G  -
rpool/data/vm-102-disk-0  5.62G  39.3T  5.62G  -
rpool/data/vm-102-disk-1  2.82T  39.3T  2.82T  -

mount -t zfs
/rpool on /rpool type zfs (rw,xattr,noacl)
/rpool/data on /rpool/data type zfs (rw,xattr,noacl)

有一段时间,我也有一个数据集rpool/store,其中存储了一些文件和目录,/rpool/store但我曾经zfs destroy rpool/store将其删除。

我现在发现我的目录结构的副本仍在/rpool/store:

ls /rpool/store/
dump  images  private  template

我试图删除它们但无济于事:

rm -rf /rpool/store
ls /rpool/store/
dump  images  private  template

如果我忽略这种情况并尝试重新创建我的store数据集,我会收到此错误:

zfs create rpool/store
cannot mount '/rpool/store': directory is not empty
filesystem successfully created, but not mounted

如何删除 中的文件和目录/rpool/store?

zfs
  • 1 个回答
  • 678 Views
Martin Hope
roaima
Asked: 2018-09-30 01:43:18 +0800 CST

使用 sed 打印范围内的选定行

  • 5

考虑简化文件

AAA
BBB
CCC1
DDD
EEE
CCC2
DDD
FFF
GGG
CCC3
HHH

我可以选择EEE范围FFF

sed -n '/EEE/,/FFF/p'

假设我想打印任何包含C但仅在匹配范围内的行。sed我可以通过管道传输结果grep

sed -n '/EEE/,/FFF/p' | grep 'C'

我还可以在一个小awk脚本(或perl,python等)中进行范围和匹配。但是我将如何只使用一次调用来做到这一点sed?

sed pattern-matching
  • 2 个回答
  • 2577 Views
Martin Hope
roaima
Asked: 2018-05-31 08:03:20 +0800 CST

将 comm 与以 NULL 结尾的记录一起使用

  • 1

在对另一个问题的回答中,我想使用类似这样的结构来查找出现在list2但未出现在中的文件list1:

( cd dir1 && find . -type f -print0 ) | sort -z > list1
( cd dir2 && find . -type f -print0 ) | sort -z > list2
comm -13 list1 list2

但是,我遇到了麻烦,因为我的版本comm无法处理以 NULL 结尾的记录。(一些背景:我将一个计算列表传递给rm,所以我特别希望能够处理可能包含嵌入式换行符的文件名。)

如果你想要一个简单的例子,试试这个

mkdir dir1 dir2
touch dir1/{a,b,c} dir2/{a,c,d}
( cd dir1 && find . -type f ) | sort > list1
( cd dir2 && find . -type f ) | sort > list2
comm -13 list1 list2

如果没有以 NULL 结尾的行,此处的输出是./d仅出现在list2.

我希望能够用来find ... -print0 | sort -z生成列表。

我怎样才能最好地重新实现等效于输出出现在但未comm出现在中的以 NULL 结尾的记录的等效项?list2list1

find sort
  • 1 个回答
  • 264 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve