[英]How to delete a line in a csv file after processing it with a Linux bash script
[英]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.