我有一个 CSV。我想编辑 CSV 的第 35 个字段并将更改写回第 35 个字段。这就是我在 bash 上所做的:
awk -F "," '{print $35}' test.csv | sed -i 's/^0/+91/g'
因此,我使用 awk 拉动第 35 个条目,然后将字符串中起始位置的“0”替换为“+91”。这个工作完美,我在控制台上获得了所需的输出。
现在我希望这个新条目写入文件。我在考虑 sed 的“就地”替换功能,但这个胎儿需要和输入文件。在上面的命令中,我无法提供输入文件,因为我的主要命令是 awk,而 sed 正在从 awk 获取输入。
谢谢。
最佳答案
您应该选择这两种工具之一。至于sed
,它可以按如下方式完成:
sed -ri 's/^(([^,]*,){34})0([^,]*)/\1+91\3/' test.csv
不确定
awk
,但@shellter 的评论可能对此有所帮助。
关于sed - 就地更换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11138434/