我的值包含单个值和散布的串联值。我需要创建一个正则表达式来计算值并返回没有“|”的整数或由“|”分隔的一组数字中的第一个角色。
示例
现有价值
12345667D23
3t23456
ab57890
3t23456|ab57890
12345667D23|3t23456|ab57890
转换后的值(返回相同的单个值或字符串的第一个值,直到“|”)
12345667D23
3t23456
ab57890
3t23456
12345667D23
我是正则表达式的新手。我在这里没有足够的经验...我不想匹配字符串,只是返回值(可以是数字,可以是字母数字,没有设定的字符串长度,只是用管道分隔)
您不需要正则表达式来完成该任务。
awk
中的这个简单脚本将完成这项工作:
awk -F\| '{print $1}' input_file
选项
-F\|
将输入字段分隔符设置为|
,然后awk
分隔字段/列中的输入行。并打印第一个。
试试这个:
^[^\|]+
这里,
^
匹配行的开头,[^\|]+
匹配一系列非管道字符(|
)。因此整个表达式匹配从行首到 |
或行尾的字符序列。