2012-12-25 51 views
0

我有兩個特殊字符,我想要在它們之間的shell中獲取內容。我怎樣才能獲得兩個特殊字符串之間的內容

不要使用awk,因爲我的linux找不到awk。

+0

什麼樣的特殊字符? tr或sed可能會訣竅;) –

+0

@ Jean-Christophe Meil​​laud字符串像「AB」到「DE」。你可以在tr或sed中詳細說明.. – choujayyl

+2

Re:「我的linux找不到awk」:這聽起來像是一個非常嚴重的問題,您應該嘗試修復,而不是解決它。 – ruakh

回答

2
$ sed -n '/WORD1/,/WORD2/p' /path/to/file 
$ sed -n '/FOO/,/BAR/p' test.txt 
+0

我找到答案。 – choujayyl

3
echo "ABxxxDE" | sed -e 's/AB\(.*\)DE/\1/g' 

會打印出:

xxx 
+0

很適合您選擇的數據(所以+1)。假設輸入是'abcABxxxDEdef'。你的命令會產生'abcxxxdef',但是有足夠的空間可以假設所需的輸出仍然是'xxx'。當然,這個問題應該給出輸入和輸出的例子(現在還沒有),但我認爲這是對這個問題的合理解讀(而不是對你的答案的一個困難的解決方案)。 –

+0

@Tim我說字符串不短,它是小節,所以你叫我回聲「xxxxx」,我輸入回聲中的長字符串.. – choujayyl

+0

@choujayyl如果你的數據是在一個文件中,你可以使用'貓'而不是'回聲'。我不認爲你曾經說過你的字符串並不短。也許你需要編輯你的問題。 – Tim

1
echo "This is a #TEST%" | grep -o \#[a-zA-Z.0-9]*\% 

將產生

#TEST% 

您也可以使用SED剝去特殊字符..

echo "This is a #TEST%" | grep -o \#[a-zA-Z.0-9]*\% | sed 's/#//g' | sed 's/%//g' 

產生

TEST 
+0

我怎樣才能從字符串(1000)---- $ Develper NBKDHKLAS發展中,NBKDHKLAS NBKDHKLAS「檢查Junit測試模擬服務的代碼爲...」29-Aug-2014 03:59 AM ..「在字符串中出現兩次.. – Nayeem

相關問題