Linux 从行中获取字符串,然后在bash中将其粘贴到另一行
从第行开始:Linux 从行中获取字符串,然后在bash中将其粘贴到另一行,linux,bash,Linux,Bash,从第行开始: 我想获得(值可能不同) #FCF0C4 然后将其粘贴到另一行 而不是 #ffffff关于: sed 's/^.*background-color:\(#......\).*/s_background-color:#ffffff_background-color:\1_/' INFILE > TMPSED sed -if TMPSED ANOTHERFILE 另一个解决方案是使用awk,如果它们在同一个文件中。行的标识可能是正则表达式、行号等 awk '/IDENTI
我想获得(值可能不同)
#FCF0C4
然后将其粘贴到另一行
而不是
#ffffff
关于:
sed 's/^.*background-color:\(#......\).*/s_background-color:#ffffff_background-color:\1_/' INFILE > TMPSED
sed -if TMPSED ANOTHERFILE
另一个解决方案是使用awk
,如果它们在同一个文件中。行的标识可能是正则表达式、行号等
awk '/IDENTIFY_YOUR_LINE_TO_COPY_COLOR/ { color=gensub(".*backround-color:(.......).*","\\1","g",$0) }
/IDENTIFY_YOUR_LINE_TO_COPY_TO {print gensub("^(.*backround-color:)#ffffff;(.*)","\\1" color "\\2","g",$0)}' INPUTFILE > OUTPUTFILE
那么:
sed 's/^.*background-color:\(#......\).*/s_background-color:#ffffff_background-color:\1_/' INFILE > TMPSED
sed -if TMPSED ANOTHERFILE
另一个解决方案是使用awk
,如果它们在同一个文件中。行的标识可能是正则表达式、行号等
awk '/IDENTIFY_YOUR_LINE_TO_COPY_COLOR/ { color=gensub(".*backround-color:(.......).*","\\1","g",$0) }
/IDENTIFY_YOUR_LINE_TO_COPY_TO {print gensub("^(.*backround-color:)#ffffff;(.*)","\\1" color "\\2","g",$0)}' INPUTFILE > OUTPUTFILE
您是否使用grep
收集这些行?或者你想让解决方案做到这一点?要更改的行是在同一个文件中还是在不同的文件中?有几个文件要编辑吗?什么决定了抓取哪一行和编辑哪一行?对于正确的解决方案,您缺少许多重要的细节
离开这里的一切:
TMPCOL=$(get line somehow | sed -r -n 's/background-color:#(.*);/\1/ p')
sed -i "s/background-color:#.*;/background-color:#$TMPCOL;/" fileToFix
您是否使用grep
收集这些行?或者你想让解决方案做到这一点?要更改的行是在同一个文件中还是在不同的文件中?有几个文件要编辑吗?什么决定了抓取哪一行和编辑哪一行?对于正确的解决方案,您缺少许多重要的细节
离开这里的一切:
TMPCOL=$(get line somehow | sed -r -n 's/background-color:#(.*);/\1/ p')
sed -i "s/background-color:#.*;/background-color:#$TMPCOL;/" fileToFix
捕捉颜色:
COL=$(echo '< div ... >' | sed -r 's/.*background-color:#([0-9A-Fa-f]{1,6});.*/#\1/')
COL=$(echo''| sed-r/*背景色:#([0-9A-Fa-f]{1,6});./#\1/)
将其粘贴到目标:
echo '< div ... >' | sed -r 's/(.*background-color:#)([0-9A-Fa-f]{1,6})(;.*)/\1'$COL'\3/'
echo''|sed-r的/(.*背景色:#)([0-9A-Fa-f]{1,6})(;.*)/\1'$COL'\3/'
结果:
< div style="left:2px; top:32px; width:744px; height:27px; display:block; border-style: solid; border-width: 1px; position:absolute; overflow:hidden; background-color:##FCF0C4;" >
捕捉颜色:
COL=$(echo '< div ... >' | sed -r 's/.*background-color:#([0-9A-Fa-f]{1,6});.*/#\1/')
COL=$(echo''| sed-r/*背景色:#([0-9A-Fa-f]{1,6});./#\1/)
将其粘贴到目标:
echo '< div ... >' | sed -r 's/(.*background-color:#)([0-9A-Fa-f]{1,6})(;.*)/\1'$COL'\3/'
echo''|sed-r的/(.*背景色:#)([0-9A-Fa-f]{1,6})(;.*)/\1'$COL'\3/'
结果:
< div style="left:2px; top:32px; width:744px; height:27px; display:block; border-style: solid; border-width: 1px; position:absolute; overflow:hidden; background-color:##FCF0C4;" >
也许你想生成一个css样式表,而不是像我在大约100个css文件中描述的那样,我必须进行更改。制作新的样式表是一件痛苦的事情。也许你会想要生成一个css样式表,而不是像我在100个css文件中描述的那样。制作新的样式表是件痛苦的事。在“#FCF0C4”的位置上,它可能有各种值(例如#FCFF24等)。我想获取此值,并将其粘贴到第二行。在“#FCF0C4”的位置中,它可能是各种值(例如#FCFF24等)。我想得到这个值,然后把它粘贴到第二行。有很多css文件需要编辑。两行都在同一个文件中。在每个文件中,您必须从第一行获取颜色值,然后将其粘贴到文件中某处的第二行。第一行看起来总是像“”。有一点总是不同的是颜色值。第二行总是一样的。*代码>将不起作用,因为sed是贪婪的,并且会消耗任何直到最后一个分号的内容。有许多css文件需要编辑。两行都在同一个文件中。在每个文件中,您必须从第一行获取颜色值,然后将其粘贴到文件中某处的第二行。第一行看起来总是像“