【发布时间】:2019-05-12 06:22:51
【问题描述】:
我有一个 csv 文件,我想替换一行(删除它并在其位置添加新信息)但我不能使用 sed。我不知道,我的 bash 终端不支持它。假设 csv 文件是这样的:
a,b,c
d,e,f
例如,我想删除行 d,e,f 并添加 g,h,i。
【问题讨论】:
-
我不想用不是 A 的语言来解决 X 问题,这不是一个好问题。那是因为无法说可以用什么
-
假设
bash可用,尝试:while read -r line; do echo "${line/d,e,f/g,h,i}"; done < input.csv > replaced.csv -
基础工具怎么不支持?你在某种受限的外壳中吗?你能用
awk吗?perl?ls -l /tmp?难道只是你需要修复你的$PATH? -
你能用
tr吗? -
当我使用
sed -i时,我的 bash shell 弹出非法选项。我从来没有限制你做任何事情,但因为我四处搜索,我只找到了sed -i的解决方案,我想知道它是否可以做不同的事情。 @PaulHodges 是的,这些命令,我可以很好地使用它们。 @fd0 ,我没有使用过tr但它可能会运行。还有一点更新,我使用了 grep -v 并且它有效(也许我认为某些论点有问题)。无论如何,感谢您到目前为止的回复。