linux - 从具有多字符分隔符的文本文件中提取列,即 "%$%"

标签 linux file awk command

我已经针对论坛上给出的问题尝试了不同的解决方案,但对指定的分隔符 %$% 不起作用,我需要从包含 200 多列的文件中提取一个特定的列。

我尝试了以下方法:

awk -F"%$%" '{print $1}' sample.txt > outfile.txt
awk 'gsub("%$%",":")' sample.txt > outfile.txt

最佳答案

符号$是正则表达式中的特殊字符,所以需要用\转义,这也是字符串字面量的特殊字符,所以需要再次转义。

所以,最后我们有:

$ cat sample 
ghkjlj;lk%$%23e;k32poek%$%eqdje2oijd%$%xrgtdy5h

$ awk -F'%\\$%' '{print $1}' sample 
ghkjlj;lk

关于linux - 从具有多字符分隔符的文本文件中提取列,即 "%$%",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47708799/

相关文章:

linux - 如何在 bash 脚本中使用 more 或 less

linux - 向 cmake 添加库

linux - Netbeans 7.1 内置终端命令

arrays - C如何将.txt文件的内容放入二维数组

bash - 如何在单个 ssh 命令中使用 bash $(awk)?

c - Linux 的 gcc __attribute__((selectany)) 替代品?

java - 通过提取列值修改并生成新的csv文件

java - 如何统计文件中某个字符的出现次数?

linux - 如何让 awk 命令在 Bash 脚本中工作?

linux - 比较两个文件中的列并打印不匹配