Ber*_*era 2 regex csv bash awk replace
我正面临着以下列格式打印csv文件格式化值的挑战:
id=Z123456;pseudocode=zxcdsa-12345
id=2345678;pseudocode=123456-rewqa
id=abcsd34;pseudocode=23456
Run Code Online (Sandbox Code Playgroud)
我想要获得这个理想的输出:
Z123456;zxcdsa-12345
2345678;123456-rewqa
abcsd34;23456
Run Code Online (Sandbox Code Playgroud)
使用命令下面我可以打印两列,但我不知道如何从$ 1和$ 2列中提取文本片段
awk -F";" '{ print $1 ";" $2}' sample.csv
Run Code Online (Sandbox Code Playgroud)
提取id =和分号字段分隔符之间的部分需要$ 1.对于第二列$ 2,要打印的匹配模式位于字符串"pseudocode ="之后,直到该行的结尾.
在我最终将结果写入文件之后:
awk -F";" '{ print $1 ";" $2}' sample.csv > result.csv
Run Code Online (Sandbox Code Playgroud)
如何用awk完成这个结果?
感谢帮助.
您可以使用;和=作为字段分隔符:
awk -F'[;=]' '{ print $2 ";" $4 }' file
Run Code Online (Sandbox Code Playgroud)
和[;=]的字符类在哪里;=
或者用sed:
sed 's/[^=;]*=//g' file
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |