Sql 如何使用grep更改列
先谢谢你。 我有一个巨大的数据库,所有行都是这样开始的: 497、36390、495、88、89、2,'xxdurango/a- 49836391,193100,1,'xxsalamanca 49936392498,94,95,2,'xxsalamanca/诺蒂 500,36393,498,96,97,2,'xxsalama 50136394,101108,1,'xxg 我需要在之后更改第三列 我正在尝试使用grep 所有这些grep命令都会选择行中的其他值 我想使用BBEdit进行搜索和替换,所有第三列都需要更改为相同的值 需要搜索: 行首+数字1,数字2 或者类似于: 行首,3位数字,四位数字 有什么提示吗 谢谢使用grep只能显示与所需模式匹配的行,因此您要么得到全部,要么什么也得不到,您将无法获得所需的字段分隔。还有其他一些工具可以使这变得更容易,例如sed,它使用类似的正则表达式,但可以编辑流。它的名字是streameditor的缩写。例如,以下内容将第三个字段更改为YYYY:Sql 如何使用grep更改列,sql,text,grep,bbedit,Sql,Text,Grep,Bbedit,先谢谢你。 我有一个巨大的数据库,所有行都是这样开始的: 497、36390、495、88、89、2,'xxdurango/a- 49836391,193100,1,'xxsalamanca 49936392498,94,95,2,'xxsalamanca/诺蒂 500,36393,498,96,97,2,'xxsalama 50136394,101108,1,'xxg 我需要在之后更改第三列 我正在尝试使用grep 所有这些grep命令都会选择行中的其他值 我想使用BBEdit进行搜索和替换
sed -r 's/^(\(([^,]+,){2})[^,]+,/\1 YYYY,/p' input_filename
该命令细分如下:
-r打开扩展正则表达式
s/是搜索和替换命令的开始
^将seach锚定在测线的起点
开始一个分组,稍后我们将参考该分组
\是行开始处的文字开头括号
[^,]+,读取为一个或多个非逗号后跟逗号的字符,并将其视为单个单元
{2} 表示上一单元重复两次
将整个图案作为一个组关闭到此点,稍后将引用该组
[^,]+,与上面相同,非逗号后跟逗号
/标记从搜索模式到替换模式的更改
\1被模式空间中的第一个组替换,直到第二个逗号
YYYY是我们的文字替换
/p结束替换模式并说打印更改
使用类似awk的东西会更容易:
awk -F, '{OFS=","; $3="YYYY"; print}' input_filename
很明显,这是如何工作的,您可能只需要知道-F将输入字段分隔符设置为,而OFS=,对print使用的输出字段分隔符执行相同的操作。请注意,我们只是使用逗号来分隔字段,因此第一个字段将包括左括号。因为您只想更改第三个字段,所以这不是问题。如果要更改第一个字段,则需要将其考虑在内
另一种选择是使用剪切和粘贴,但我将把它作为练习。-输入中的尖括号在哪里?更新您的输入并显示预期结果