Text-Processing
合併一行中的兩個字元串,其中 |分隔符
我想將兩個字元串合併到一行中
|
作為分隔符。我們可以通過使用awk '{$1,$2,$3$4$5}'
來合併,有沒有其他方法來合併使用|
作為分隔符的字元串?輸入:
XXXXXXXX 0 Xxyxhsag | yuiji
輸出:
XXXXXXXX 0 Xxyxhsag|yuiji
假設您的數據包含由 分隔的欄位
|
,並且分隔|
字元可能在任一側都包含空格。然後,您將使用的輸入欄位分隔符awk
是表達式*[|] *
,即匹配|
字元和任何側翼空格的表達式。使用單個字元
|
作為輸出欄位分隔符並強制awk
重新創建輸出記錄(通過設置其中一個欄位)將解決您的問題,至少以您在問題中提出的方式。awk -F ' *[|] *' -v OFS='|' '{ $1=$1 }; 1' file
或者,等效地,
awk -F ' *[|] *' -v OFS='|' '{ $1=$1; print }' file
測試這個:
$ cat file XXXXXXXX 0 Xxyxhsag | yuiji
$ awk -F ' *[|] *' -v OFS='|' '{ $1=$1 }; 1' file XXXXXXXX 0 Xxyxhsag|yuiji
您還可以使用
sed
類似表達式的替換:$ sed 's/ *| */|/g' file XXXXXXXX 0 Xxyxhsag|yuiji
這一切都假設我們可以將數據視為文本或“簡單”CSV 數據,在帶引號的欄位中沒有嵌入分隔符、換行符或引號。