繁体   English   中英

Bash 脚本删除 CSV 文件中的行

[英]Bash script to delete line in CSV file

我有一个 CSV 文件,其中包含不同用户的百万条记录,每个用户有多个记录。 我正在对文件进行一些处理,并设法获取我要删除的每个用户的记录。

我正在使用以下命令,但我无法删除我想要的行

get_date=$(grep -n "xyz@abc.com"  francis_test.csv| awk -F, '{print $22}' | sed 's/"//g' | awk '{print $1" "$2}'  |  sort -k 1.7n -k 1.4,1.5n -k 1.1,1.2n | tail -n1)

record=$(grep -n "xyz@abc.com"  francis_test.csv| grep "$get_date")

要删除记录,我使用以下命令

sed '/"$record"/d'

单引号防止变量record被扩展。 像这样引用它:

sed '/'"$record"/'d'

sed还有一个选项-i用于就地修改(如果您想实际从文件中删除行)。

sed -i.bak '/'"$record"/'d'

-i提供后缀会备份原始文件。

谢谢,但现在我面临以下命令的问题

get_date=$(grep -n "xyz@abc.com" francis_test.csv| awk -F, '{print $22}' | sed 's/"//g' | awk '{print $1" "$2}' |排序 -k 1.7n -k 1.4,1.5n -k 1.1,1.2n | 尾 -n1)

突然无法获得 output 它失败了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM