- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
请告知,因为我有记录列表,但我需要查明我的记录是否有 5 个竖线分隔符和名字匹配,然后打印它。
例如:
abc|def|ghi|lmno|pq|rs
abc|def|ghi|lmno
abc|def|ghi
dpo|def|ghi|lmno|fr|pl|nm
但如果循环,我只想传递第一个值。
if ($string contains "abc" && 5 pipe delimiter )
print $string;
最佳答案
看起来 awk
再次出手相助:
awk -F '|' 'NF == 6 && $1 == "abc" { print }'
如果有5个分隔符,则有6个字段。您可以省略 { print }
,因为这是默认操作。如果您需要将值 abc
传递给脚本(它可能会有所不同),请使用:
awk -F '|' -v string=abc 'NF == 6 && $1 == string { print }'
不要尝试使用 match
作为变量名。
我的回答是基于这个问题,它说:
if my record has 5 pipe delimiter and first name matches then print it
意思是“如果记录有 6 个由管道分隔符分隔的字段(因此有 5 个管道)并且第一个字段与给定名称匹配,则打印整个记录”。如果问题的含义略有不同,则必须相应地修改答案。
这是 Unix;还有其他方法可以完成相同的任务,包括:
grep '^abc|[^|]*|[^|]*|[^|]*|[^|]*|[^|]*$'
sed -n -e '/^abc\(|[^|]*\)\{5\}$/p'
您可以使用 Perl 或 Python,或者……选择您最喜欢的脚本语言。但是,awk
解决方案比 grep
或 sed
解决方案更易于阅读。
关于linux - 在管道定界符的基础上传递字符串/记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24359212/
我一直在从事一个开源项目。它使用安装在 jdk8 镜像上的构建生成的 debian (.deb) 软件包创建 docker 镜像。 但最近我开始犯错误,不幸的是我无法克服它。一旦通过 Dockerfi
我正在尝试使这些卡片可点击以重定向到另一个屏幕,但我无法弄清楚 let cards = this.state.items.map(item => ( Actions.dog
我是一名优秀的程序员,十分优秀!