如何删除文件最后一行的逗号?这是文件:
# cat ox_data_archive_r_20120727.json
{"name": "secondary_ua","type":"STRING"},
{"name": "request_ip","type":"STRING"},
{"name": "cb","type":"STRING"},
下面将删除所有3行中的逗号。
# sed 's/,$/ /' ox_data_archive_r_20120727.json
{"name": "secondary_ua","type":"STRING"}
{"name": "request_ip","type":"STRING"}
{"name": "cb","type":"STRING"}
我只需要删除最后一个逗号。所以输出应该是这样的。。。
# cat newfile.json
{"name": "secondary_ua","type":"STRING"},
{"name": "request_ip","type":"STRING"},
{"name": "cb","type":"STRING"}
$ cat input.txt
{"name": "secondary_ua","type":"STRING"},
{"name": "request_ip","type":"STRING"},
{"name": "cb","type":"STRING"},
$ sed '$s/,$//' < input.txt
{"name": "secondary_ua","type":"STRING"},
{"name": "request_ip","type":"STRING"},
{"name": "cb","type":"STRING"}
来自GNU sed的文档:
$
:此地址与输入的最后一个文件的最后一行匹配,或者在指定了-i
或-s
选项时与每个文件的最后行匹配。
这应该有效:
sed '$ s/,$//g' input_file
- 第一个
$
选择最后一行
您可以添加-i
,sed
会将更改应用到您的input_file
。
awk答案肯定比sed更详细:
awk 'NR>1 {print prev} {prev=$0} END {sub(/,$/,"", prev); print prev}' file