gpt4 book ai didi

linux - 如何删除一堆文件的第N行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:46 26 4
gpt4 key购买 nike

我有一组 30 多个文件,其中包含以下格式的键值对或翻译后的字符串:

key=some text

有时我想从这些文件中删除一些键,我所做的是打开其中一个,找到包含我要删除的键的行(例如第 310 行),然后从其他文件中手动删除该行。这些文件中的键按字母顺序排序,因此如果一个键出现在文件的第 310 行,那么它会出现在所有其他文件的第 310 行。

从一堆文件中按编号删除一行(例如第 310 行)的简单方法是什么?

最佳答案

sed -i '' '310d' file1 file2 ...

将从指定的所有文件中删除第 310 行,不保留任何备份副本。您定义的完整过程如下:

KEY=mykey
FILE1=myfile
ALL_FILES="file1 file2 ..."
sed -i '' $(grep -n "^$KEY=" $FILE1 | head -1 | sed -E 's/^([0-9]+):.*/\1/')d $ALL_FILES

但更简单的方法是:

KEY=mykey
ALL_FILES="file1 file2 ..."
sed -i '' "/^$KEY=/d" $ALL_FILES

这意味着“从 $ALL_FILES 中删除以 'mykey=' 开头的每一行,不保留任何备份副本”。

关于linux - 如何删除一堆文件的第N行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33108944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com