gpt4 book ai didi

linux - ksh grep 用于 Linux 中的反斜杠

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:08 28 4
gpt4 key购买 nike

我有一个文件,每行末尾的日期格式为 MM\DD\YYYY。在文件的那部分之后,末尾有一些我不想要的文本。我不想使用 tail 以防末尾的文本行数发生变化。我只想获取所有末尾有日期的行。

我尝试过各种形式的 grep,包括 grep "[0-9]\\\\[0-9]\\\\[0-9]"文件。 txt 甚至只是 grep "\\\\[0-9]"file.txt 无论我如何尝试转义反斜杠 grep 都不会不工作。

我可以grep for "[0-9$]" 这似乎拉线,但我更希望能够包括斜线.我正在使用 Korn shell。任何帮助表示赞赏。谢谢。

最佳答案

Ksh 正则表达式

Ksh 有自己的正则表达式。对任何字符串使用 *。因此,要获取所有以 .c 结尾的文件,请使用 *.c。单个字符用 ? 表示。因此,所有以任何符号开头后跟 44.f 的文件都可以通过以下方式获取: ?44.f.

特别是在 ksh 中,有用于整个模式的量词:

?(pattern) 匹配零次或一次模式。*(pattern) 匹配任何时候的模式。+(pattern) 与模式匹配一​​次或多次。@(pattern) 匹配一次模式。!(pattern) 匹配没有模式的字符串。

所以我们可以质疑变量中的字符串,例如:if [[ $var = fo@(?4*67).c ]];then ...

引用 here 。也许 this link 也会有所帮助。

编辑:

看看这是否适合你:

grep '[[:digit:]]\{2\}\\[[:digit:]]\{2\}\\[[:digit:]]\{4\}' file.txt

关于linux - ksh grep 用于 Linux 中的反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26845940/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com