【发布时间】:2021-08-16 22:44:37
【问题描述】:
我正在尝试通过 bash 向偶尔为空的 CSV 文件添加一些标题(因此有时文件会是空的,有时会包含数据)。到目前为止,我已经尝试过使用 sed 和 awk。
Sed:
sed -i '1liAge,Sex,Location' $nameOfFile
Awk:
awk 'BEGIN{print "Age,Sex,Location"}1' $nameOfFile
这两个似乎都不起作用,因为没有添加标题。当我回显 $nameOfFile 时,会打印 csvInfo.csv,所以我认为 $nameOfFile 没有任何问题。不知道我哪里出错了。
【问题讨论】:
-
printf '%s\n' '0a' "Age,Sex,Location" . %p Q | ed -s "$nameOfFile" -
如果是空文件,
echo header1,header2,etc. > file.csv? -
如果它没有行,sed 命令将不起作用(如果它甚至有效 - 什么是
li?)。 awk 命令不会覆盖原始命令。不完全确定“空的 CSV 文件”是什么意思。如果它是空的,为什么不直接将标题回显到其中? -
@jhnc 该文件不会一直为空。有时它会包含数据,有时它不会,所以我试图让它适用于这两种情况。
-
@Jetchisel 正在打印到控制台,但我想编写(修改)CSV 文件。
标签: bash