【问题标题】:awk and matching a literal backslash in a stringawk 并匹配字符串中的文字反斜杠
【发布时间】:2014-12-08 16:02:59
【问题描述】:

我正在尝试沿着文字“\n”的分隔符切割第一个子字符串(实际的 '\' 和 'n' 不是新行)。

我可以使用八进制在 '\' 处拆分字符串:

echo "1234\n5678" | awk -F'\134' '{print $1}'

但我无法弄清楚如何将八进制拆分为较大字符串的一部分。例如,以下失败:

echo "1234\n5678" | awk -F'\134'n '{print $1}'

我可以用 sed 对 "\n" 进行字符串替换,然后对其进行拆分,但我不应该只用 awk 就可以做到吗?

【问题讨论】:

    标签: shell awk split delimiter backslash


    【解决方案1】:

    首先您不必使用\134。你可以-F '\\'。对于您的问题,您可以使用

        echo "1234\n5678" | awk -F '\\\\n' '{print $1}'
    

    \ 用于转义\

    【讨论】:

    • 奇怪。我发誓我先测试过。在这种情况下,我一定是在其他地方出现了语法错误,导致它失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多