Rom*_*las 5 ksh text-processing csv
我有一个 CSV 文件,我想从第三个分号中截断它。例如,如果我有这个文件:
1;foo;bar;baz;x;y;z
2;foo;bar;baz;x;y;z
3;foo;bar;baz;x;y;z
Run Code Online (Sandbox Code Playgroud)
我想获得以下输出:
1;foo;bar
2;foo;bar
3;foo;bar
Run Code Online (Sandbox Code Playgroud)
我不知道我可以使用什么样的 Unix 命令。你有什么建议?
请注意,此操作将在 KSH 脚本上完成。
Chr*_*own 17
为了多样化,这是另一种方式cut:
cut -d \; -f -3
Run Code Online (Sandbox Code Playgroud)
这将完成您的要求:
awk -F';' '{print $1 ";" $2 ";" $3;}' <input >output
Run Code Online (Sandbox Code Playgroud)
该awk实用程序非常适合此任务。它可以轻松地将单独的线切割成字段,然后基于此操作它们。该-F';'参数告诉awk使用;的字段分隔符。引号是必需的,因为;没有它们,shell 会解释为命令分隔符。
给予 awk 为每一行('{print $1 ";" $2 ";" $3;}'位)执行的命令同样被引用,以防止所有有趣的字符({, }, $,"和;在这种情况下)被 shell 特殊处理,并确保整个事情awk作为一个传递给单元。
而且,当然,<input和>output是重定向指令被赋予外壳命令的输入和输出,并到一个文件重定向。
| 归档时间: |
|
| 查看次数: |
3978 次 |
| 最近记录: |