由买买提看人间百态

topics

全部话题 - 话题: sed
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
O******e
发帖数: 734
1
$ cat -T test.dat
abc^Ixyz
$ sed -e 's/\t/TAB/' test.dat
abcTABxyz
$ sed -e 's/\\t/TAB/' test.dat
abc xyz
$ sed -e 's/ /TAB/' test.dat (Ctrl-I used in the regexpr)
abcTABxyz
$ sed -e "s/\t/TAB/" test.dat
abcTABxyz
$ sed -e "s/\\t/TAB/" test.dat
abcTABxyz
$ sed -e "s/ /TAB/" test.dat (Ctrl-I used in the regexpr)
abcTABxyz
In the above examples I can type the TAB character in the shell
either using Ctrl-V followed by TAB or Ctrl-V followed by Ctrl-I.
t*********l
发帖数: 30
2
来自主题: Unix版 - some useful (hopefully) sed command
*double space a file
sed G
*under UNIX convert DOS newline (CR/LF) to Unix format:
sed 's/.$//'
sed 's/^M$//' #^M should be input like this: Ctrl-V Ctrl-M
*delete leading whitespaces
sed -e 's/^[ ^t]*//' #^t (table): Ctrl-V Ctrl-I
*delete all CONSECUTIVE blank lines from file except the first
sed '/./,/^$/!d' #this will allows 0 blank at top
#in (t)csh, you may want to use \!
sed '/^$/N;/\n$/D' #allowas 1 blank at top, 0 at EOF
*de
d******e
发帖数: 143
3
来自主题: Linux版 - a sed question
请教个SED的用法
我有一些LOG文件,每一行的格式是一样的
我要把第5个field作一下运算再附在一起,如下
turn lines like this:
E,1204905442,3006,238,83888208,126586,N,0059221,T,K
into:
E,1204905442,3006,238,83888208[2128],126586,N,0059221,T,K
我感觉应该用这些shell,sed之类的应该挺容易的,可是写出来发现要用sed两次,很郁闷
不知道如何对匹配的部分直接运算一下
for s in $(cat $1)
do
errcode=$(echo $s | sed 's/E,[0-9]*,[0-9]*,[0-9]*,\([0-9]*\),.*/\1/')
errcode=$(($errcode % 65536))
echo $s | sed 's/\(E,[0-9]*,[0-9]*,[0-9]*,\)\([0-9]*\)\(,.*\)/\1\2['$errcode
']\3/'
done
多谢
h**o
发帖数: 548
4
我想comment out 某一行。
suppose the content of a.txt is:
111111111
222222222
33333AAA
444444444
我写到:
pos=`grep -n "AAA" a.txt |cut -d':' -f1`
sed "${pos} d" a.txt >b.txt
sed '
$pos i\
#33333AAA\
' b.txt>a.txt
前两个命令没问题, 最后一个命令得到错误信息:
sed: command garbled: $pos i\
请问错在哪? 其实我用:
sed '
3 i\
#33333AAA\
' b.txt>a.txt
就对了。 可能和variable 有关。
m*********g
发帖数: 273
5
来自主题: Linux版 - sed 和 bash script 求助
想实现以下功能:
file1:
NP 4
要改成:
NP 5
在终端下:
$ sed '/^NP/s/[0-9]/5/' file1
可以完成。
现在要写一个bash scirpt 批量做这件事
#!/bin/bash
for((n=1;n<=3;n++))
do
sed '/^NP/s/[0-9]/${n}/' file1 > file1.$n
done
这样不成功, file1.1 是这样的
NP ${n}
怎样才能吧$n实际的值传给script中的sed呢?
我知道用perl可以做的,只是想用一下sed这个简单工具,先谢了
A******a
发帖数: 61
6
【 以下文字转载自 Linux 讨论区 】
发信人: Ataraxia (静), 信区: Linux
标 题: how to sed from grep output in c shell?
发信站: BBS 未名空间站 (Fri Jan 25 11:45:51 2008)
by using
foreach i (*.txt)
grep -o 'Modules:[0-9]' $i
end
i got return like
Modules:2
Modules:1
Modules:10
Modules:0
Modules:7
...
I want to cut off "Modules:" and only keep the integer number, how should i
use sed based on this output?
grep ... | sed
or
sed ... $(grep...)
Thanks.
h**o
发帖数: 548
7
来自主题: Programming版 - 如何用’sed‘ comment out 某一行。
我想comment out 某一行。
suppose the content of a.txt is:
111111111
222222222
33333AAA
444444444
我写到:
pos=`grep -n "AAA" a.txt |cut -d':' -f1`
sed "${pos} d" a.txt >b.txt
sed '
$pos i\
#33333AAA\
' b.txt>a.txt
前两个命令没问题, 最后一个命令得到错误信息:
sed: command garbled: $pos i\
请问错在哪? 其实我用:
sed '
3 i\
#33333AAA\
' b.txt>a.txt
就对了。 可能和variable 有关。
w**********o
发帖数: 140
8
echo "#aaa" | sed '/^#/! s/aaa/bbb/g'
#aaa
echo "aaa" | sed '/^#/! s/aaa/bbb/g'
bbb
這個trick就是, 先找到, 然後在替換.
sed沒有look ahead和look behind.
A******a
发帖数: 61
9
【 以下文字转载自 Linux 讨论区 】
发信人: Ataraxia (静), 信区: Linux
标 题: how to use grep/sed to remove newlines?
发信站: BBS 未名空间站 (Sat Oct 18 10:48:52 2008)
i am trying grep some text from a file then return some words:
grep "^>start" textfile.txt
but it always returns results one each line:
A
B
C
I want to have it as: A B C ..., so I tried to use sed:
grep "^>start" textfile.txt | sed -e 's/\n//'
it doesn't work, anyone knows how to solve this?
Thanks.
l********r
发帖数: 175
10
I like to replace ' with * using sed command, how to do it? Thanks a
lot.
sed 's/'/*/g' file > file-new;
could not work.
sed 's/\'/*/g' file > file-new;
could not work either.
s****a
发帖数: 6521
11
来自主题: Linux版 - 请教一个sed命令 (转载)
【 以下文字转载自 Unix 讨论区 】
发信人: shorea (未注册用户), 信区: Unix
标 题: 请教一个sed命令
发信站: BBS 未名空间站 (Wed Dec 14 11:31:41 2011, 美东)
我没用过unix,
现在在服务器上运行一个小脚本出了错误:
$i="2000"
sed -i "s/.0*/$i/" file.txt
错误提示: sed: -e expression #1, char xx: unterminated `s' command
而同样的命令,我在自己的Linux下可以执行没有问题。
请问这是为什么,怎样解决呢?
谢谢!
n********n
发帖数: 529
12
来自主题: Linux版 - 问一个C Shell的sed用法。
呵呵,这个问题,我每半年就会在这个板上回答一次。
有些系统的 sed 不能直接用 "\n"。你可以这样写。
echo "Your String Here!" | sed 's/{pattern}/\
/'
或者,
echo "Your String Here!" | sed 's/\
/{pattern}/'
n********n
发帖数: 529
13
来自主题: Linux版 - 问一个C Shell的sed用法。
恩,确实没看清你说的是csh.
csh用这个吧,
sed -e ':a' -e 'N' -e '$\!ba' -e 's/\n/ /g' <--- 用在命令行
或者,
sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' <--- 用在脚本里
% cat a
abc
cde
efg
fff
rrr
fff
ggg
hhh
jj
j
kkk
% sed -e ':a' -e 'N' -e '$\!ba' -e 's/\n/ /g' a
abc cde efg fff rrr fff ggg hhh jj j kkk
i***r
发帖数: 1035
14
来自主题: Linux版 - 这个 sed 命令为什么不work?
一个column,想把回车替换为空格不成功:
awk '{print $2}' file | sed -e 's/\n/ /g'
但是tr就可以做到:
awk '{print $2}' file | tr '\n' ' '
更奇怪的是,如果是一行里面有空格,sed可以替换为回车
head -1 file | sed -e 's/ /\n/g'
b***y
发帖数: 2799
15
☆─────────────────────────────────────☆
nkw (just+it) 于 (Sat Apr 5 20:21:14 2008) 提到:
不知道雷在这里用的对不对,虽然我很不喜欢这个用法。
要parse很多大text csv文件,很简单,每行50列,其中用一列是没有双引号的text,
但有时也会有逗号,目的就是如果一行的逗号多了一个的话(肯定是text列有逗号),
就用双引号把一列括起来。
有同事用perl写了一个parser。我一直很抗拒perl,混乱,很丑。而且这个问题用sed
就可以做了。
在cygwin用sed做了,用了40多分钟。
觉得太慢。想想awk会不会快点?结果还慢一倍。
perl一直被认为是做这个最好的,那个同事还说过perl就是“designed for this”。
发现同事run过他的perl,去看了他saved的parsed文件时间,显示用了6,7+小时。他
用native Active perl,非cygwin。
再试了试gnu sed for windows 32,半个小时。http://gnuwin32.so
b***y
发帖数: 2799
16
☆─────────────────────────────────────☆
nkw (非死非活) 于 (Sat Jul 19 03:08:26 2008) 提到:
今天浪费很多时间在一个很简单的regex上,原来是grep没有\t (tab).有没有什么
option让这些程序使用一个统一的regex?对不常用的人要记住这些细微差别不容易。
还遇到一怪事,我的数据是三个字段以tab分割的结构,第三个日期字段很多为空字段。
xxxx{tab}yyyy{tab}12/31/2007
xxxx{tab}yyyy{tab}
xxxx{tab}yyyy{tab}11/30/2007
xxxx{tab}yyyy{tab}
当时我不知道grep的tab输入时不得不先用sed把\t换成|。
sed 's/\t/|/g' file|grep "[^|]*|[^|]*|.+" 得不到任何结果。
sed 's/\t/|/g' file|grep "[^|]*|[^|]*|[0-9]+" 就能有输出。
前一个有什么问题?
☆────────────────────────────────────
q****h
发帖数: 1
17
Hi, there:
I'm stuck with a sed question. Could you help me out?
Here is the content of the text file: test.c
line1
line2
text3asdasfasfasftext4
I want to change it to the following format:
line1
line2
text3asdasf
asfasftext4
I try this sed command but it doesn't work:
sed s/\ test
Thanks in advance! Any suggestion is appreciated.
e*******t
发帖数: 59
18
一个包裹,大概总额8000. 当时declaration就是填的8000。 走的是ups。今天联系我
让我填 SED,我看了一下:
The SED is a U.S. government form used for developing export statistics and
controls. It is required for shipping single commodities valued
at more than $2,500 or commodities requiring a license or license exemption.
请教各位过来人,这个怎么抹平了。。。
谢谢
q**d
发帖数: 16
19
you should have known yourself - use partial quoting ("..." as in 1st sed
command)
BTW why not use
sed "s/^\(.*)AAA/#\1AAA/" file
b*****d
发帖数: 24
20
我有很多个(几百个)文本文件file1,file2,...filem,每个文件中都有100个这样的
字符串,'step n',n是一个占用8个字符的整数,具体数值不确定,该字符串在所在行
的开头。
我现在需要做这样处理,把文件filem中的每个'step n' 字符串的数字n都替换为数字n
+m*100。我想写shell script来完成,不知道怎么实现,请高手指教。我试了:
sed 's/^step\(.\{8\}\)/step$(\1+500)'
但是不起作用。关键是我只不知道怎么把\1得到的字符串转化为整数,在做计算,不知
道sed有没有这样的功能。
Thx!
d*o
发帖数: 108
21
来自主题: Programming版 - 大牛 in Perl and SED?
我知道
$yyy = anything;
$replace = “sed `s/XXX/$yyy/g` file1 > file2;
但在下面的 “.” 甚摸意思呢? (结果是一样的. Code written by someone else)
$yyy = anything;
$replace = “sed `”.”s/XXX/”.$yyy.”/g` file1 > file2;
c**t
发帖数: 2744
22
来自主题: Programming版 - 大牛 in Perl and SED?
+

我知道
$yyy = anything;
$replace = “sed `s/XXX/$yyy/g` file1 > file2;
但在下面的 “.” 甚摸意思呢? (结果是一样的. Code written by someone else)
$yyy = anything;
$replace = “sed `”.”s/XXX/”.$yyy.”/g` file1 > file2;
j**********p
发帖数: 22
23
grep -o 'Modules:[0-9]' $i | sed 's/Modules://g'
or
grep -o 'Modules:[0-9]' $i | awk -F ":" '{print $2}'
or
grep -o 'Modules:[0-9]' $i |sed 's/^.*://g'
i***f
发帖数: 10
24
来自主题: Unix版 - help on sed
Hi,
Today when I try to replace a string in many files, first
I tried to use "sed -e s/STRING1/STRING2/g *" and only found
out the replaced pattern was output to STDOUT. At last I have
to write a script like this:
#/bin/sh
for fn in *
do {
sed -e s/STRING1/STRING2/g $fn > out.tmp
cp -f out.tmp $fn
}
done
rm -f out.tmp
Anyone can suggest to do the same function by using only one
line?
i****d
发帖数: 7
25
来自主题: Unix版 - [转载] sed question
【 以下文字转载自 Linux 讨论区 】
【 原文由 Iamold 所发表 】
file1.txt contains
asdfasdf
adsf
asdfasdfsdf
#ifdef CONFIG_SCSI_MULTI_LUN
static int max_scsi_luns = 32;
#else
static int max_scsi_luns = 1;
#endif
I want to replace lines from CONFIG_SCSI_MULTI_LUN to #endif
how to do this by using sed?
the following command yielded a wrong output...
sed '/CONFIG_SCSI_MULTI_LUN/,/endif/{c\
#ifdef CONFIG_SCSI_MULTI_LUN\
static int max_scsi_luns = 32;\
#else\
static int max_scsi_luns = 1;\
#endif
;}' file1.txt > output.txt
r*****s
发帖数: 985
26
来自主题: Unix版 - 请教:Variable in sed command
Hi, everybody,
I tried to use a shell script to do a for loop:
#!...bash
for i in (5, 10, 15, 20) do;
sed 's/bpp=64/bpp=$i/g' myfile.c > myfile2.c
~~
done
However, each time it executes, "bpp=64" becomes "bpp=$i" instead of
"bpp=5" ......
I have no idea how to make the $i inside sed command to be a real variable.
Anybody has a suggestion for it?
Thanks a lot!
d*****y
发帖数: 12
27
来自主题: Unix版 - sed question??
Hi ,
I want to use sed on Unix to do this:
1. I have a string called tmp="12 23 34"
2. I want to replace all the space in this string with a new line and
dump it to a file
3. finally this file looks like this: 12
23
34
I tried this: print $tmp | sed 's/ /\n/g' it didn't work, so somebody
help????
Thanks
a*******s
发帖数: 324
28
来自主题: Unix版 - 请问几个关于Sed的问题
I use tcsh.

sed -e /[0-9]/d filename
don't know how to just use only line to do it.
don't know how to just use only line to do it.
I don't know how to easily express non-capital alphabetical character
in "sed".
Is "grep" acceptable?
grep "^[A-Z]" filename
e****e
发帖数: 179
29
来自主题: Unix版 - question about sed
when I use sed to replace a string in a file, it only shows on the screen that
string has been changed, but when I open that file, it is still the same as
before.
the command I used is:
sed -e 's,oldstr,newstr,' filename
thanks.
c****j
发帖数: 258
30
sed -n '
#print first empty line
/^$/ p
#find next empty line, remove it
/^$/ {
N
s/.//
b Empty
}
#print non-empty lines
p
'
I don't like sed, but it can do something quite simply.
s****a
发帖数: 6521
31
来自主题: Unix版 - 请教一个sed命令
我没用过unix,
现在在服务器上运行一个小脚本出了错误:
$i="2000"
sed -i "s/.0*/$i/" file.txt
错误提示: sed: -e expression #1, char xx: unterminated `s' command
而同样的命令,我在自己的Linux下可以执行没有问题。
请问这是为什么,怎样解决呢?
谢谢!
s*******u
发帖数: 89
32
上学时候用过一本课本,就叫sed and awk.网上有电子版的,搜搜呗
h********m
发帖数: 116
33
前几天面试被问到一个问题,中间需要删除文件里含有某个pattern的lines,但是如果
有另一个pattern就不用删除(比如说comment行)。请问这个怎么实现啊?
如果只删除pattern1,应该是 sed "/$PATTERN1/d" file
可是怎样限定这一行不是 “#”开头呢?
d*********0
发帖数: 12
34
看看能不能用Regular Expression?
比如.
sed '/^[^#]*${PATTERN1}/d' file
m*****k
发帖数: 731
35
echo "abcd" |sed 's/\(^[^#]*\)cd/\1/'
f*******s
发帖数: 182
36
一定要只用sed么?grep不行么

发帖数: 1
37
2016/2017学年,中国人在美国拿博士学位的81%不会回来,数据来自SED。
d******e
发帖数: 143
38
来自主题: Linux版 - a sed question
原来可以用awk
好像awk比sed要powerful
thanks!

BEGIN
W*******e
发帖数: 64
39
echo abcdefgh | sed 's/\(..\)/\1\n/g'
N**D
发帖数: 10322
40
sed "s|(\w\w)|\1\r|g"
D***a
发帖数: 939
41
将单引号改为双引号试试
sed "s/\'/\*/g" file > file-new
h*******c
发帖数: 248
42
sed -e "s/'/\*/g" file >filenew
l********r
发帖数: 175
43
Hi, my problem was solve by doing following:
sed "s/'/*/g" file > file-new;
no need slash. Thanks a lot for suggestions.
i*****f
发帖数: 578
44
The following python code should do:
#!/usr/bin/env python
m = 200
for i in range(1, m+1):
b1 = open("file%d"%i).readlines()
b2 = []
for line in b1:
n = int(line.split()[1])
b2.append("step %d" % n+i*100)
open("file%d_new"%i, "w").writelines(b2)
Ugly, but should work. I don't test it though. This can also be done by sed+
sh or awk, but I'm not familiar with the latter.

字n
E*V
发帖数: 17544
45
用sed应该可以实现吧?
R******d
发帖数: 1436
46
来自主题: Linux版 - 请问一个awk和sed连用的问题
意图是这样的:
把T2 F2两个文件合并,然后对这个合并后的文件进行处理:
第一列打印到文件a,第二列添加一行(这一行是以一个变量的形式写的)后打印到文
件b。
下面是我写的,报错:
cat T2 F2|awk '{print $1 >"a";print $2|"sed "1s/^/'"$title"'\n/"" > "b" }'
请问怎么写才对?多谢了。
R******d
发帖数: 1436
47
来自主题: Linux版 - 请问一个awk和sed连用的问题
哎呀,我不是想学怎么在awk里nest sed么。
出错可能和一些特殊符号的转义有关。
N**********d
发帖数: 9292
48
【 以下文字转载自 Programming 讨论区 】
发信人: NeedForSpeed (working~~~~~), 信区: Programming
标 题: sed里面正则表达式匹配字符越少越好怎么写?
发信站: BBS 未名空间站 (Sun Mar 13 20:56:30 2011, 美东)
例如:其中引号内长度不定
"abc", "def"
".*"
引号里面内容越少越好,我不想是 abc", "def
想要分别是
abc和def
这个该怎么写呢?
N**********d
发帖数: 9292
49
好像不行啊
sed -n -e 's:.*pattern1="\(/pattern2/[^"]*\)":\1:p' "$file" > "link"
还是不对劲啊,因为括号里面有/,所以我用:分割,我想抓"$file"里面的所有这种在双
引号里面的/pattern2/[^"]*的样子
求教怎么写呢?
s*****w
发帖数: 1527
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)