如何使用sed或awk删除在特定位置包含特定字符串的行?

提姆

我想在特定位置查找和删除所有具有特定字符串,特定长度的行。

我的数据集中的一行看起来像这样:

STRING   1234567 1234567 7654321 6543217 5432176

笔记:

  • 条目的字段宽度为8

  • 识别码可以在同一行中重复

  • 标识号可以在不同的行上重复,但可以在不同的位置重复-不应删除这些行

在此示例中,我要查找位于第17列并跨越到第24列(即第三个字段)的包含“ 1234567”的行并将其删除。如何使用sed或awk执行此操作?

我使用了以下内容,但它删除了我要保留的行:

sed -i '/1234567/d' ./file_name.dat

干杯!

维克多·史翠比维

您可以使用

sed -i '/^.\{17\}1234567/d' ./file_name.dat

细节

  • ^ -一行的开始
  • .{17} -任何17个字符
  • 1234567 -子字符串。

参见在线sed演示

s="STRING   1234567 1234567 7654321 6543217 5432176
STRING   1234567 5534567 7654321 6543217 5432176"
sed '/^.\{17\}1234567/d' <<< "$s"
# => STRING   1234567 5534567 7654321 6543217 5432176

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用sed替换在特定位置包含任何字符的字符串

如何使用AWK或SED在N行之前打印字符串并从N行删除特定字符串

如何在给定位置选择包含特定子字符串的行-Python

使用awk / sed从特定字段中删除字符串

如何删除包含特定字符串的特定行?

sed / awk匹配后删除特定位置的字符

RegExp - 如何检查字符串是否在特定位置包含子字符串?

如果文件包含特定字符串,请在特定位置插入一行

使用unix sed删除包含以美元符号开头的特定字符串的行

从特定位置的字符串中删除字符

查找字符串在特定位置包含某些字符的行

如何从包含特定字符串的输出中删除行?

如何从文件中删除包含特定字符串的行?

如何删除文件中包含特定字符串的行?

返回包含特定位置数字的字符串

从特定位置的字符串中删除字母

从字符串末尾算起,删除特定位置的char

如何使用Sed取消注释包含特定字符串的行?

如何用sed替换特定位置由分隔符分隔的子字符串

如何检查字符串是否在特定位置包含int?

使用python在字符串的特定位置添加字符

如何使用numpy在Python中删除包含特定字符串的行?

如何在 Python 字符串的特定位置/索引处删除空格

如何放置从特定位置开始的字符串?

如何从字符串中的特定位置获取数字?

使用Unix在特定位置匹配字符串

如何从熊猫数据框中删除包含特定列中特定字符串的行?

使用shell删除特定列中包含特定字符串的50%的行

使用sed在包含两个特定字符串的行中添加字符