使用grep/awk//whatever修改CSV文件中的特定行

使用grep/awk//whatever修改CSV文件中的特定行,awk,grep,Awk,Grep,我有一个.csv文件,大约有8k列,每列12行。第二行的格式是:“name/id”,我需要它只包含name部分。删除行中/之后的所有内容的最简单方法是什么 如果我理解正确,您可能希望修改文件中的每12行?您可以尝试: awk 'NR % 12 == 0 {print gensub("/.*$","",$0) ; next} {print}' INPUTFILE 这可以做到: awk -F, '{sub(/\/.*/,"",$2)}1' OFS=, file 例如: echo "te

我有一个.csv文件,大约有8k列,每列12行。第二行的格式是:“name/id”,我需要它只包含name部分。删除行中/之后的所有内容的最简单方法是什么

如果我理解正确,您可能希望修改文件中的每12行?您可以尝试:

awk 'NR % 12 == 0 {print gensub("/.*$","",$0) ; next}
     {print}' INPUTFILE
这可以做到:

awk -F, '{sub(/\/.*/,"",$2)}1' OFS=, file
例如:

echo "test,paul/22,more" | awk -F, '{sub(/\/.*/,"",$2)}1' OFS=,
test,paul,more

我建议您转置表格,然后您可以使用awk轻松地进行替换。发布一些具有代表性的小样本输入和相关的所需输出,否则我们只是猜测您的需求。每列之间都有一个空格??当我尝试这样做时,它只删除了第一行上的/id部分,之后第五行与第二列合并,从而导致信息丢失。此外,所有其他/id零件仍处于连接状态。这是一个从Excel生成的.csv文件,如果这有什么区别的话…@ahetman发布一些文件以及您希望输出的方式。