小编nu1*_*73R的帖子

限制bash while循环到10次重试

这个while循环如何限制为最多10次重试?

#!/bin/sh
while ! test -d /somemount/share/folder
do
    echo "Waiting for mount /somemount/share/folder..."
    sleep 1
done
Run Code Online (Sandbox Code Playgroud)

bash

7
推荐指数
3
解决办法
6259
查看次数

使用sed时未终止的地址正则表达式

我使用下面的命令,但在linux中运行命令时,得到以下错误.

sed -n '/^[2015/01/01 03:46/,/^[2015/01/01 03:47/p' < Input.txt
sed: -e expression #1, char 42: unterminated address regex
Run Code Online (Sandbox Code Playgroud)

KIndly帮我解决这个问题.

unix linux sed

6
推荐指数
1
解决办法
1万
查看次数

rm !(文件名)在 ubuntu 中不起作用,它显示错误“bash: !: event not found”

我试图删除目录中的所有文件,但在该目录中保留两个文件。

我使用了命令

rm !(1file name| 2filename) 
Run Code Online (Sandbox Code Playgroud)

但它抛出错误

bash: !: event not found
Run Code Online (Sandbox Code Playgroud)

请帮我更正命令。

bash command

6
推荐指数
1
解决办法
3088
查看次数

需要使用正则表达式防止重复字符

如何使用 RegEx 来测试以下模式:

  1. 字符串长度必须为 4-10 个字符
  2. 字符串不得有任何重复字符(两个字符不能相同且相邻)

我对此进行了研究,我认为我很接近:

^(?!(.)\1).{4,10}$
Run Code Online (Sandbox Code Playgroud)

ab12这将正确找到和的匹配项12ab。它还正确地拒绝1111aaaa。然而它错误地接受了12aaab11

它似乎只查找字符串开头的重复字符。我尝试移动或删除^$,但我需要它们来进行最大字符检查。我还尝试了几种变体(.)\1来查找重复字符,但没有成功。

任何帮助或提示将不胜感激。

PS - 如果有人知道答案,我实际上希望最多允许一对重复字符,但我认为这太难了,并决定禁止任何重复字符。

regex string match string-matching

5
推荐指数
1
解决办法
7599
查看次数

菲律宾电话号码的正则表达式模式

菲律宾有两种类型的电话号码.

First Type =它099数字开头.我已经这样做了.这是我的模式.

^(09)\\d{9}
Run Code Online (Sandbox Code Playgroud)

它正在发挥作用.

第二种类型=它+6399数字开头.例子是+6391571825.我无法确定这种模式,因为它具有特殊的特征.这个模式是什么?

regex

4
推荐指数
2
解决办法
5742
查看次数

如何使用 awk 分隔由等号分隔的两列文件?

我真正的问题是我的文件如下所示:

username=password
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用 -F=,但是如果第二列可能包含等号,我该怎么办?

name=laskjf9w8u23;oi4==
Run Code Online (Sandbox Code Playgroud)

目前我拥有的代码正在砍掉最后一个等号。我只能假设,如果该字符串前面有一个等号,它也会被截断。

这是我目前拥有的:

cat file.txt | grep "=" | sed 's/\//\\\//g' | awk --field-separator "=" --assign file="<outfile>" '{printf "\"s/@%s@/", $1 ; for (i = 2; i <= NF; i++) { printf "%s", $i ; if ($i != $NF) printf "=" } ;  printf "/g\" %s\n", file; }' | xargs -n2 sed -i
Run Code Online (Sandbox Code Playgroud)

干杯!

regex bash awk sed

3
推荐指数
1
解决办法
2005
查看次数

如何在bash中对此进行排序

你好我有一个包含这些行的文件:

apple
12
orange
4
rice
16
Run Code Online (Sandbox Code Playgroud)

如何使用bash按数字排序?假设每个数字是上述对象的价格.

我希望他们的格式如下:

12 apple
4 orange
16 rice
Run Code Online (Sandbox Code Playgroud)

要么

apple 12
orange 4
rice 16  
Run Code Online (Sandbox Code Playgroud)

谢谢

linux bash command-line

2
推荐指数
1
解决办法
328
查看次数

Awk无法解析亵渎符号

awk脚本

awk 'BEGIN {FS = "\t"} $1==prev  {printf "\t" $2} $1 != prev {printf "\n" $1,$2} {prev=$1}' 
Run Code Online (Sandbox Code Playgroud)

当遇到亵渎的线条时,它就会倒下.下面的行在它们年后(括号中)以制表符分隔.

Richard Pryor... Here and Now (1983)    stand-up  
Richard Pryor... Here and Now (1983)    stand-up-comedian  
Richard Pryor... Here and Now (1983)    stand-up-comedy  
Richard Pryor: I Ain't Dead Yet, #*%$#@!! (2003)    african-american 
Run Code Online (Sandbox Code Playgroud)

获得错误

awk: cmd. line:1: (FILENAME=temp.list FNR=4) fatal: arg count with `$' must be > 0
Run Code Online (Sandbox Code Playgroud)

另一行(再次包含不解析的亵渎)

Merry F#%$in' Christmas (2005)  censored-profanity-in-title
Run Code Online (Sandbox Code Playgroud)

标签再次在括号内的年份之后.

awk

1
推荐指数
1
解决办法
104
查看次数

在Python中删除字符串中特定子字符串之前和之后的字符

我是Python的新手.可以用regex来完成.我想在字符串中搜索特定的子字符串,并在字符串中删除字符前后的字符.

例1

Input:"This is the consignment no 1234578TP43789"
Output:"This is the consignment no TP"
Run Code Online (Sandbox Code Playgroud)

例2

Input:"Consignment no 1234578TP43789 is on its way on vehicle no 3456MP567890"
Output:"Consignment no TP is on its way on vehicle no MP"
Run Code Online (Sandbox Code Playgroud)

我有要在字符串中搜索的这些首字母缩写词(MP,TP)的列表.

python regex regex-lookarounds

1
推荐指数
1
解决办法
1459
查看次数