【问题标题】:Method for saving any text within speech marks from one file to another file将语音标记中的任何文本从一个文件保存到另一个文件的方法
【发布时间】:2021-02-11 02:06:13
【问题描述】:

我有一个大型数据集文本文件,我想从 Unix/Linux 中提取某些字符串。例如,数据集中的一行如下所示:

"Hacked.html","hacked1.txt","Restore.html","Test.url","Hacking.txt"

我想提取 "" 中的任何字符串/文件名并保存到另一个带有文本列表的空文件,输出如下:

Hacked.html
Hacked1.html
Restore.html
Test.url
Hacking.txt

但是,我对 Linux(Bash 等)的语言知识有限。你能帮忙吗?

谢谢。

【问题讨论】:

  • 欢迎来到 SO,请在您的问题中以代码的形式添加您的努力,强烈鼓励原始发帖者提出问题。

标签: bash sed grep xargs


【解决方案1】:

此帮助文件 1 为源,文件 2 为目标。
我想你会有一些带逗号的行需要在之后删除

grep -oP '\"\K[^"]+' file.txt > file2.txt

【讨论】:

    【解决方案2】:

    您可以使用awk

    awk -F',' '{for(i=1; i<=NF; i++) {print substr($i, 2, length($i) - 2)}}' src > dst
    

    注意事项:

    • 我们假设src 是您的输入,dst 是目标文件;
    • -F 设置输入字段分隔符,在我们的例子中为 , 字符;
    • NF 保存输入记录中的字段总数;
    • $0 是整个输入记录 - 这就是为什么我们从 $1 开始 - 第一个字段;
    • 我们调用substr() 命令来忽略每个字段的第一个和最后一个字符。

    【讨论】:

    • 这个脚本似乎可以解决问题,感谢您的帮助。你的解释也很有用。
    • @EarthlyBale11 您可以通过单击左侧的灰色大复选按钮来接受一个答案(如果对您有帮助)。如果您希望可以通过单击上方灰色三角形为任何好的答案的作者添加 +10 分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多