【问题标题】:Copy the line based on search criteria根据搜索条件复制行
【发布时间】:2020-11-26 04:33:30
【问题描述】:

我有一个file1,其中包含:

apple_phones.csv
apple_ipad.csv
apple_mac.csv

需要复制n行到另一个文件file2

尝试的代码:awk 'NR==1' "$file1" > "$file2"

这将使用 file1 的第一行创建 file2。

但是,当我执行awk 'NR==4' "$file1" > "$file2" 时,它会创建空文件file2

在这种情况下,如果 file1 没有第 4 行或第 4 行开头没有“apple”,我不希望创建文件 2。

【问题讨论】:

  • 重定向会自动创建文件。只需键入 > file2 即可创建文件。您可以查看 awk 的 printf(fmt_str, args) > "/path/to/file" 功能,但您必须添加条件逻辑以防止根据需要打印。祝你好运。

标签: shell awk ksh


【解决方案1】:
awk 'NR==4 && $0 ~ /^apple/ {print > "file2"}' file1

当条件为真时,它将打印到file2,否则不打印也不创建新文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    相关资源
    最近更新 更多