我有像
这样的数据31 text text t text ?::"!!/
2 te text 32 +ěščřžý
43 te www ##
从uniq -c
我需要得到像
这样的东西text text t text ?::"!!/
te text 32 +ěščřžý
te www ##
我尝试使用像
这样的东西a=$1;
$1=""
$0=substr($0, 2);
printf $0;
print "";
但它删除了我的空格,我得到了像
这样的东西text text t text ?::"!!/
te text 32 +ěščřžý
te www ##
我也需要保存这个数字。
有没有人知道怎么做?
答案 0 :(得分:1)
我想你想删除每一行的前导数字,sed
对于这项任务来说会更简单
sed -E 's/^[0-9]+ //' file
awk
使用默认FS标准化空白区域。如果有更多处理,您可以使用awk
中的sub执行相同操作。
答案 1 :(得分:0)
试试这个:
$ echo "31 text text t text" |awk '{gsub($1FS$2,$2);print}'
text text t text
您也可以尝试
$ echo "31 text text t text" |awk '{gsub(/^[0-9]+/,"");print}'
text text t text
但在这种情况下,每条线前面都会有一个前导空间。
答案 2 :(得分:0)
$ seq 5 | uniq -c
1 1
1 2
1 3
1 4
1 5
$ seq 5 | uniq -c | awk '{sub(/^ *[^ ]+ +/,"")}1'
1
2
3
4
5
$ seq 5 | uniq -c | sed 's/^ *[^ ]* *//'
1
2
3
4
5